CSS中的vertical-align属性

这篇具有很好参考价值的文章主要介绍了CSS中的vertical-align属性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vertical-align

1.CSS属性 - vertical-align

CSS中的vertical-align属性,HTML-CSS,css,前端

2.深入理解vertical-align – line boxes

This property affects the vertical positioning inside a line box of the boxes generated by an inline-levelelement.

官方文档的翻译:vertical-align会影响 行内块级元素 在一个 行盒垂直方向的位置

思考:一个div没有设置高度的时候,会不会有高度?

  • 没有内容,没有高度
  • 有内容,内容撑起来高度

但是内容撑起来高度的本质是什么呢?

  • 内容有行高(line-height),撑起来了div的高度

行高为什么可以撑起div的高度?

  • 这是因为line boxes的存在,并且line-boxes有一个特性,包裹每行的inline level
  • 而其中的文字是有行高的,必须将整个行高包裹进去,才算包裹这个line-level

那么,进一步思考:

  • 如果这个div中有图片,文字,inline-block,甚至他们设置了margin这些属性呢?
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 当前box有没有高度: 会有高度 */
    /* 为什么有高度: 由内容的撑起来 */
    /* 本质: 内容的行高撑起来 */
    .box {
      background-color: orange;
    }

    .small {
      display: inline-block;
      width: 100px;
      height: 100px;
      background-color: #f00;
    }
  </style>
</head>
<body>
  
  <div class="box">
    我是div元素 <span class="small"></span>
    虽然说,现在想吃什么用什么海外产品,都能代购,但是自己去购买,感觉还是不同。
    一个人在路上,心情也会不同,路上的行程,可以听书看书,到达后,疯狂的游玩。书的种类很多,旅行的书本真的不少,常常看到人们去各地游玩,自己心中也跟着想去。有时间,可以试着一个人去旅行,那是一种享受一种幸福。女人不必限制于单身生活,才会各地旅行,婚后的女性,有时间,也可以一个人去旅行,那是一种不同的感受,有些人也可以带小孩老公一起去旅行。独自游玩是一种幸福,家庭一起去旅行,也是一种幸福。单身的女性,可以一个人独游。婚后的女性,也可以一个人独游。当然,婚后若是自己一个人不方便,那就全家人旅行。
  </div>

</body>
</html>

3.深入理解vertical-align – 不同情况分析

◼ 情况一:只有文字时,line boxes如何包裹内容?(注意:红色是包裹的div,下面也都一样)

CSS中的vertical-align属性,HTML-CSS,css,前端

◼ 情况二:有图片,有文字时,line-boxes如何包裹内容?

CSS中的vertical-align属性,HTML-CSS,css,前端

◼ 情况三:有图片,有文字,有inline-block(比图片要大)如何包裹内容?

CSS中的vertical-align属性,HTML-CSS,css,前端

◼ 情况四:有图片,有文字,有inline-block(比图片要大)而且设置了margin-bottom,如何包裹内容?

CSS中的vertical-align属性,HTML-CSS,css,前端

◼ 情况五:有图片、文字、inline-block(比图片要大)而且设置了margin-bottom并且有文字,如何包裹内容?

CSS中的vertical-align属性,HTML-CSS,css,前端

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      background-color: orange;
    }

    .box img {
      width: 200px;
    }

    .box .small {
      display: inline-block;
      width: 100px;
      height: 200px;
      background-color: #f00;
    }
  </style>
</head>
<body>
  
  <div class="box">
    我是普通的文本, 323fdafdafxxxx322
    <img src="../images/kobe01.jpg" alt="">
    <span class="small"></span>
  </div>

</body>
</html>

4.vertical-align的baseline

◼ 结论:line-boxes一定会想办法包裹住当前行中所有的内容。

◼ 但是,但是为什么对齐方式千奇百怪呢?

  • 你认为的千奇百怪,其实有它的内在规律
  • 答案就是baseline对齐

◼ 我们来看官方vertical-align的默认值:没错,就是baseline

CSS中的vertical-align属性,HTML-CSS,css,前端

◼ 但是baseline都是谁呢?

  • 文本的baseline是字母x的下方
  • Inline-block默认的baseline是margin-bottom的底部(没有,就是盒子的底部)
  • Inline-block有文本时,baseline是最后一行文本的x的下方

◼ 一切都解释通了

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      background-color: orange;
    }

    .box img {
      width: 200px;
    }

    .box .small {
      display: inline-block;
      width: 100px;
      height: 200px;
      background-color: #f00;
    }
  </style>
</head>
<body>
  
  <div class="box">
    我是普通的文本, 323fdafdafxqgxxx322
    <img src="../images/kobe01.jpg" alt="">
    <span class="small">aaaaaafadf发放大法发货哈发放大法da</span>
  </div>

</body>
</html>

CSS中的vertical-align属性,HTML-CSS,css,前端

5.vertical-align的其他值

◼ 现在,对于不同的取值就非常容易理解了

  • baseline(默认值):基线对齐(你得先明白什么是基线)
  • top:把行内级盒子的顶部跟line boxes顶部对齐
  • middle:行内级盒子的中心点父盒基线加上 x-height 一半的线对齐 (不能用来垂直居中)

CSS中的vertical-align属性,HTML-CSS,css,前端

  • bottom:把行内级盒子的底部跟line box底部对齐
  • <percentage> :把行内级盒子提升或者下降一段距离(距离相对于line-height计算\元素高度), 0%意味着同baseline一 样
  • <length> :把行内级盒子提升或者下降一段距离,0cm意味着同baseline一样

◼ 解决图片下边缘的间隙方法:

  • 方法一: 设置成top/middle/bottom

  • 方法二: 将图片设置为block元素

6.行内块元素的文本内容与块分离的现象

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      height: 300px;
      line-height: 300px;
      background-color: orange;
    }

    .box .small {
      display: inline-block;
      background-color: #ccc;
      height: 80px;
      /* line-height: 80px; */
    }
  </style>
</head>
<body>
  
  <div class="box">
    我是文本, 哈哈哈, xxxxx

    <span class="small">xxxxxx哈哈哈哈</span>

  </div>

</body>
</html>

CSS中的vertical-align属性,HTML-CSS,css,前端

通过在行内块元素中添加文本,实现行内块垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      height: 300px;
      line-height: 300px;
      background-color: orange;
    }

    .box .small {
      display: inline-block;
      background-color: #ccc;
      height: 80px;
      /* 让文本在小盒子里垂直居中,然后将小盒子放入大盒子中,小盒子的文本会自动与大盒子文本基线对齐,如果这时候大盒子文本是垂直居中的,那么与大盒子文本基线对齐的小盒子也会是垂直居中的 */
      line-height: 80px;
    }
  </style>
</head>
<body>
  
  <div class="box">
    我是文本, 哈哈哈, xxxxx

    <span class="small">xxxxxx哈哈哈哈</span>

  </div>

</body>
</html>

CSS中的vertical-align属性,HTML-CSS,css,前端文章来源地址https://www.toymoban.com/news/detail-674188.html

到了这里,关于CSS中的vertical-align属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编程笔记 html5&css&js 041 CSS边框属性

    盒子是由四周的边框组成,边框的属性就构成了盒子的大部分样式。 CSS border 属性允许您指定元素边框的样式、宽度和颜色。 border-style 属性指定要显示的边框类型。 允许以下值: border-style 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。 注意:除非设

    2024年01月19日
    浏览(49)
  • 编程笔记 html5&css&js 043 CSS尺寸属性

    块的宽度和高度,决定了块的大小,也就是尺寸。 height 和 width 属性用于设置元素的高度和宽度。height 和 width 属性不包括内边距、边框或外边距。它设置的是元素内边距、边框以及外边距内的区域的高度或宽度。 height 和 width 属性可设置如下值: auto - 默认。浏览器计算高度

    2024年01月21日
    浏览(53)
  • 前端编写页面HTML、CSS常用属性方法汇总

    不太常用的属性: box-shadow的: CSS3动画的点: 控制文字行数: CSS3的一些冷知识: @keyframes: HTML5: html+css乱七八糟的: JavaScript:

    2024年02月16日
    浏览(48)
  • 前端 | (五)CSS三大特性及常用属性 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月17日
    浏览(45)
  • 【HTML 往日冒险 01】标签 元素 属性 注释 文本格式化 颜色 CSS

    说在前面 HTML 对于现在的我来说,熟悉又陌生,熟悉的是其标签的结构清晰,陌生的是其丰富的使用细节,长期不使用难免会失去许多相关的记忆,但是不妨让我们与W3school教程一同补全往日的冒险日志…(主要是从中提炼关键的信息,具体的知识点还是参考相关手册) 重新开

    2024年02月07日
    浏览(46)
  • 前端 | ( 十)HTML5简介及相关新增属性 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月16日
    浏览(58)
  • HTML 元素中的name 属性

    name 属性是 HTML 元素中常用的属性之一。它用于指定表单元素的名称,以便在提交表单时将其值与对应的键关联起来。 每个表单元素(例如 input 、 select 和 textarea )都可以具有一个 name 属性,该属性为元素提供一个唯一的标识符。当用户在提交表单时,浏览器会将表单元素的

    2024年02月13日
    浏览(41)
  • HTML5中的data-*属性

    介绍: data-*全局属性是一类被称为自定义数据属性的属性,它赋予我们在所有 HTML 元素上 嵌入自定义数据属性 的能力。 在js里有两种获取方法: 第一种 :     第二种:  setAttribute()修改属性值:   css中使用:  使用属性选择器

    2024年02月14日
    浏览(37)
  • [HTML]Web前端开发技术8(HTML5、CSS3、JavaScript )CSS样式属性,withborder,italic | oblique,indent,padding,——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 CSS属性值中的单位 CSS字体样式 font-size设置字号 字体样式font-style属性 字体系列font-family属性 字体变体

    2024年02月04日
    浏览(73)
  • 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包