Skip to content

五、其它常用属性

TIP

鼠标样式,外轮廓,超出部分隐藏,vertical-align 属性

1、cursor 鼠标样式

TIP

设置光标的类型,在鼠标指针悬停在元素上时显示相应样式

更多属性值看官方文档 👆(opens new window)

描述
url 需使用的自定义光标的 URL。注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。
default 默认光标(通常是一个箭头)
auto 默认。浏览器设置的光标。
crosshair 光标呈现为十字线。
pointer 光标呈现为指示链接的指针(一只手)
move 此光标指示某对象可被移动。
e-resize 此光标指示矩形框的边缘可被向右(东)移动。
ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
n-resize 此光标指示矩形框的边缘可被向上(北)移动。
se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
s-resize 此光标指示矩形框的边缘可被向下移动(南)。
w-resize 此光标指示矩形框的边缘可被向左移动(西)。
text 此光标指示文本。
wait 此光标指示程序正忙(通常是一只表或沙漏)。
help 此光标指示可用的帮助(通常是一个问号或一个气球)。

关于 url 这个值需要注意:

① 图片地址,在实际开发中一般为绝对路径

② 图片大小最好是 32 * 32 的大小(各浏览器支持大小不一,但 32 都 ok)

③ 图片格式,不同浏览器格式不一,可以是 png、svg、ico、cur,一般以 ico 和 cur 为主

ico 在线图标生成器,点击查看 👆(opens new window)

html {
  /* 图片地址,在实际开发中一般为绝对路径 
        除了前面的图片,后面还需要指定一个鼠标样式,否则不生效
    */
  cursor: url("http://127.0.0.1:5500/images/fish.ico"), pointer;
}
/* 当没有找到自定义图标,就会用pointer效果 */

2、outline 外轮廓

TIP

这个属性用于设置元素周围的轮廓,其用法和 border 属性一样

语法

/* 边框宽 边框风格 边框颜色 */
outline: 10px solid red;

outline 的小属性

  • outline-width 边框宽

  • outline-style 边框风格

  • outline-color 边框颜色

border 与 outline 的区别

  • outline:不占据空间,绘制于元素内容周围的轮廓,不参于盒子模型的占位计算,不会因为添加这个属性,而造成盒子占位空间变化。

  • outline 没有办法单独控制某一边效果,也就是没有 outline-left、outline-top、outline-right、outline-bottom 属性;

  • border:参于盒子模型计算,会因为边框值的变化,造成盒子占位空间变化。

<style>
  .box {
    width: 100px;
    height: 100px;
    /*     */
    margin: 50px 0px 0px 30px;
    background-color: tomato;
    /* 外轮廓 */
    outline: 30px dotted skyblue;
    /* border: 30px dotted skyblue; */
  }
</style>
<body>
  <div class="box"></div>
  我是页面中的其它元素喽
</body>
添加 outline 效果 添加 border 效果
![[Pasted image 20260226160828.png]] ![[Pasted image 20260226160836.png]]

去掉表单元素默认的 outline 属性

  • 表单元素为了增中其可访问性(聚焦提示),都有默认的 outline 值。

  • 将表单元素的 outline 值设为 0 或 none,可以去掉表单元素的轮廓效果

input {
  outline: none; /* 去掉元素外轮廓 */
}
去掉前 去掉后
![[Pasted image 20260226161007.png]] ![[Pasted image 20260226161018.png]]

3、overflow 超出部分处理

TIP

overflow 属性规定当内容溢出元素框时该做什么。

3.1、overflow 属性值

描述
visible 默认值。内容溢出,会呈现在元素框之外。
hidden 内容溢出,则溢出内容是不可见的。
scroll 不管内容是否溢出,都会显示滚动条。
auto 内容溢出,则显示滚动条以便查看其余的内容。如果不溢出,则不显示滚动条
inherit 规定应该从父元素继承 overflow 属性的值。
<style>
  .box {
    width: 100px;
    height: 100px;
    background-color: skyblue;
    line-height: 35px;
    /* 左浮动 */
    float: left;
    margin-left: 20px;
  }
  .box1 {
    overflow: hidden;
  }
  .box2 {
    overflow: scroll;
  }
  .box3 {
    overflow: auto;
  }
</style>
<body>
  <div class="box">啥处理都不做我是文本内容2,我是文本内容3</div>
  <div class="box box1">hidden 我是文本内容1,我是文本内容2,我是文本内容3</div>
  <div class="box box2">scroll 我是文本内容1,我是文本内容2,我是文本内容3</div>
  <div class="box box3">auto 我是文本内容1,我是文本内容2,我是文本内容3</div>
</body>

![[Pasted image 20260226160927.png]]

3.2、overflow-x 和 overflow-y

TIP

  • overflow-x 水平方向溢出设置

  • overflow-y 垂直方向溢出设置

overflow-x: hidden;

4、vertical-align 属性

TIP

  • 指定行内元素、行内块级元素、表格单元格元素的垂直对齐方式

  • 对块级元素是无效的

属性值 描述
baseline 使元素的基线与父元素的基线对齐
sub 使元素的基线与父元素的下标基线对齐
super 使元素的基线与父元素的上标基线对齐
text-top 使元素的顶部与父元素的字体顶部对齐。
text-bottom 使元素的底部与父元素的字体底部对齐。
middle 使元素的中部与父元素的基线加上父元素 x-height(x 高度) 的一半对齐。
数值(10px) 使元素的基线对齐到父元素的基线之上的给定长度
可以是负数
百分比 % 使元素的基线对齐到父元素的基线之上的给定百分比,该百分比是line-height属性的百分比
可以是负数
top 使元素及其后代元素的顶部与整行的顶部对齐
bottom 使元素及其后代元素的底部与整行的底部对齐

注:

小写字母 x 的下边缘(线)就是我们的基线 ![[Pasted image 20260226161128.png]]

<style>
  .box {
    height: 50px;
    float: left;
    margin: 10px 10px 10px 0px;
    background-color: skyblue;
    /* 行高 50px */
    line-height: 50px;
  }
  .box span {
    /* 行内块 */
    display: inline-block;
    line-height: 1;
    background-color: yellow;
  }
  .baseline {
    vertical-align: baseline;
  }
  .sub {
    vertical-align: sub;
  }
  .super {
    vertical-align: super;
  }
  .text-top {
    vertical-align: text-top;
  }
  .text-bottom {
    vertical-align: text-bottom;
  }
  .middle {
    vertical-align: middle;
  }
  .top10px {
    vertical-align: 10px;
  }
  .top10 {
    vertical-align: 10%;
  }
  .top {
    vertical-align: top;
  }
  .bottom {
    vertical-align: bottom;
  }
</style>
<body>
  <div class="box">文字Xx<span class="baseline">x-baseline</span>文字</div>
  <div class="box">文字Xx<sub>2</sub><span class="sub">x-sub</span>文字</div>
  <div class="box">
    文字Xx<sup>2</sup><span class="super">x-super</span>文字
  </div>
  <div class="box">文字Xx<span class="text-top">x-text-top</span>文字</div>
  <div class="box">
    文字Xx<span class="text-bottom">x-text-bottom</span>文字
  </div>
  <div class="box">文字Xx<span class="middle">x-middle</span>文字</div>
  <div class="box">文字Xx<span class="top10px">x-10px</span>文字</div>
  <div class="box">文字Xx<span class="top10">x-10%</span>文字</div>
  <div class="box">文字Xx<span class="top">x-top</span>文字</div>
  <div class="box">文字Xx<span class="bottom">x-bottom</span>文字</div>
</body>

![[Pasted image 20260226161224.png]] vertical-align 的应用场景

用于控制文字与行内块元素或图片在垂直方向上的对齐方式 (但实际上任没有完全居中对齐,因为图片中心是与 x 的中心

<style>
  h3 {
    height: 50px;
    background-color: #ddd;
    line-height: 50px;
  }
  .img {
    /* 元素的中线与x的中心对齐 */
    vertical-align: middle;
  }
</style>
<body>
  <h3><img src="images/fish.png" class="img" /> x我是一直可爱的小白兔</h3>
</body>

![[Pasted image 20260226161253.png]]

用于设置表格单元中内容的垂直对齐方式

<style>
  table {
    height: 100px;
  }
  table tr td {
    border: 1px solid #000;
  }
  .baseline {
    vertical-align: baseline;
  }
  .top {
    vertical-align: top;
  }
  .middle {
    vertical-align: middle;
  }
  .bottom {
    vertical-align: bottom;
  }
</style>
<body>
  <table>
    <tr>
      <td class="baseline">baseline</td>
      <td class="top">top</td>
      <td class="middle">middle</td>
      <td class="bottom">bottom</td>
    </tr>
  </table>
</body>

![[Pasted image 20260226161322.png]]