CSS其他属性

文章目录

  • [1. vertical-align](#1. vertical-align)
    • [1.1. 概念](#1.1. 概念)
    • [1.2. 常用值](#1.2. 常用值)
    • [1.3. 作用](#1.3. 作用)
    • [1.4. 出现的情况一](#1.4. 出现的情况一)
      • [1.4.1. 原因](#1.4.1. 原因)
      • [1.4.2. 解决方案](#1.4.2. 解决方案)
    • [1.5. 出现情况二](#1.5. 出现情况二)
      • [1.5.1. 解决方案一](#1.5.1. 解决方案一)
      • [1.5.2. 解决方案二](#1.5.2. 解决方案二)
      • [1.5.3. 解决方案三](#1.5.3. 解决方案三)
    • [1.6. 出现情况三](#1.6. 出现情况三)
      • [1.6.1. 原因](#1.6.1. 原因)
      • [1.6.2. 解决方案](#1.6.2. 解决方案)
  • [2. 溢出效果](#2. 溢出效果)
    • [2.1. 作用](#2.1. 作用)
    • [2.2. 属性名](#2.2. 属性名)
  • [3. 隐藏效果](#3. 隐藏效果)
    • [3.1. 使用 display 隐藏](#3.1. 使用 display 隐藏)
    • [3.2. 使用 visibility 隐藏](#3.2. 使用 visibility 隐藏)
    • [3.3. 完整代码](#3.3. 完整代码)

1. vertical-align

1.1. 概念

用于指定同一行元素之间,或表格单元格内文字的垂直对齐方式 。

1.2. 常用值

  1. baseline (默认值):元素的基线与父元素的基线对齐。
  2. top :使元素的顶部与其所在行的顶部对齐。
  3. middle :中部对齐。
  4. bottom :使元素的底部与其所在行的底部对齐。
  5. length:将元素升高或降低指定的高度,可以是负数。

1.3. 作用

可以解决行内块的幽灵空白问题。

1.4. 出现的情况一

图片和文字在一行显示的时候,图片底部和文字的底部并没有对齐。

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>01-其他属性-vertical-align使用</title>
    <style>
      .box {
        border: 1px solid #000;
      }
      img {
        width: 100px;
      }
    </style>
  </head>
  <body>
    <div class="box"><img src="./images/girl.png" alt="girl" />girl</div>
  </body>
</html>

注意:这里给图片宽度 100px,是因为图片过大,适当地缩小图片,没有影响的,因为父元素没有设置宽高,内容是由子元素撑开的。

1.4.1. 原因

图片和文字默认沿着这一行的基线对齐。

1.4.2. 解决方案

给 img 加上vertical-align: bottom;,文字就能对齐底端了。

如果单单解决空白问题,而不是文字对齐底端,vertical-align取值除了 baseline 外,其他值( middelbottomtop)都可以。

1.5. 出现情况二

图片下面与最底端出现空白问题。

1.5.1. 解决方案一

给图片vertical-align,除了 baseline 外,其他值都可以解决。

1.5.2. 解决方案二

如果父元素只有一张图片,可以给图片加display: block;,也能解决。

css 复制代码
/* vertical-align: middle; */
display: block;

1.5.3. 解决方案三

如果父元素只有图片,没有文字的话,可以给父元素设置font-size: 0;,也可以解决。如果该行内块内部还有文本,则需单独设置 font-size

1.6. 出现情况三

设置单行文本垂直居中时,设置line-height: height;之后,文字居中了但是图片没有居中。

1.6.1. 原因

图片还是沿着所在一行的基线对齐。

1.6.2. 解决方案

给图片设置vertical-align:middle,把子元素放置在父元素的中部。

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>03-其他属性-vertical-align解决img垂直居中问题</title>
    <style>
      .box {
        width: 300px;
        height: 300px;
        border: 1px solid #000;
        line-height: 300px;
      }
      img {
        width: 100px;
        vertical-align: middle;
      }
    </style>
  </head>
  <body>
    <div class="box"><img src="./images/girl.png" alt="girl" />girl</div>
  </body>
</html>

2. 溢出效果

2.1. 作用

控制溢出部分的显示效果。

2.2. 属性名

overflow,属性值如下:

  • visible :内容不会被修剪,会呈现在元素框之外(默认值)。
  • hidden :隐藏内容,其余内容是不可见的。
  • scroll :显示滚动条以便查看其余的内容,不论内容是否溢出。
  • auto :自动显示滚动条,内容不溢出不显示。

3. 隐藏效果

3.1. 使用 display 隐藏

display:none 不占位置(最常用)。

加了display:none后:

css 复制代码
.c2 {
  width: 100px;
  height: 100px;
  background: red;
  /* 使用display隐藏:不占位置*/
  display: none;
}

3.2. 使用 visibility 隐藏

visibility:hidden 占据位置

css 复制代码
.c2 {
  width: 100px;
  height: 100px;
  background: red;
  /* 使用visibility隐藏:占据位置 */
  visibility: hidden;
}

3.3. 完整代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>01-其他属性-隐藏效果</title>
    <style>
      .c1 {
        width: 100px;
        height: 100px;
        background: lightblue;
      }
      .c2 {
        width: 100px;
        height: 100px;
        background: red;

        /* 使用display隐藏:不占位置*/
        /* display: none; */

        /* 使用visibility隐藏:占据位置 */
        visibility: hidden;
      }
      .c3 {
        width: 100px;
        height: 100px;
        background: green;
      }
    </style>
  </head>
  <body>
    <div class="c1"></div>
    <div class="c2"></div>
    <div class="c3"></div>
  </body>
</html>
相关推荐
蟾宫曲3 小时前
在 Vue3 项目中实现计时器组件的使用(Vite+Vue3+Node+npm+Element-plus,附测试代码)
前端·npm·vue3·vite·element-plus·计时器
秋雨凉人心3 小时前
简单发布一个npm包
前端·javascript·webpack·npm·node.js
liuxin334455663 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
qq13267029403 小时前
运行Zr.Admin项目(前端)
前端·vue2·zradmin前端·zradmin vue·运行zradmin·vue2版本zradmin
魏时烟4 小时前
css文字折行以及双端对齐实现方式
前端·css
2401_882726485 小时前
低代码配置式组态软件-BY组态
前端·物联网·低代码·前端框架·编辑器·web
web130933203985 小时前
ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含
前端·github
胡西风_foxww5 小时前
【ES6复习笔记】迭代器(10)
前端·笔记·迭代器·es6·iterator
前端没钱5 小时前
探索 ES6 基础:开启 JavaScript 新篇章
前端·javascript·es6
m0_748255266 小时前
vue3导入excel并解析excel数据渲染到表格中,纯前端实现。
前端·excel