GVKun编程网logo

深入理解css之line-height(css的line-height)

16

在本文中,我们将带你了解深入理解css之line-height在这篇文章中,我们将为您详细介绍深入理解css之line-height的方方面面,并解答css的line-height常见的疑惑,同时我们

在本文中,我们将带你了解深入理解css之line-height在这篇文章中,我们将为您详细介绍深入理解css之line-height的方方面面,并解答css的line-height常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的CSS height 与 max-height min-height、css line-height、css – height如何自动与line-height交互:0和不同的font-size、css———详解height与line_height

本文目录一览:

深入理解css之line-height(css的line-height)

深入理解css之line-height(css的line-height)

总结

以上是小编为你收集整理的深入理解css之line-height全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

CSS height 与 max-height min-height

CSS height 与 max-height min-height

[height]

解释: 属性设置元素的高度。

支持: 所有主流浏览器都支持 max-height 属性。

说明: 这个属性定义元素内容区的高度,在内容区外面可以增加内边距、边框和外边距。

注释: 行内非替换元素会忽略这个属性。

[max-height]

解释: 属性设置元素的最大高度。

支持: 所有主流浏览器都支持 max-height 属性。

说明: 元素可以比指定值矮,但不能比其高。不允许指定负值。

注释:max-height 属性不包括外边距、边框和内边距

[max-height]

解释: 属性设置元素的最小高度。

支持: 所有主流浏览器都支持 max-height 属性。

说明: 素可以比指定值高,但不能比其矮。不允许指定负值。

【example】

 1 #box {
 2     width: 100px;
 3     height: 100px;
 4     border: 1px solid red;
 5 }
 6 #test {
 7     width: 100%;
 8     max-height: 100%;
 9     background-color: blue;
10     /* height: 100%; */
11 }

#box {
    width: 100px;
    height: 100px;
    border: 1px solid red;
}
#test {
    width: 100%;
    max-height: 100%;
    background-color: blue;
    height: 100%;
}

css line-height

css line-height

对行高一直都是一知半解的,所以在工作中经常会遇到这样那样的问题,与其每次都踩坑,不如了解下它到底是什么。

行高 行距

要了解行高,先了解下字体的结构:顶线,中线,基线,底线

输入图片说明

这里要注意基线底线,在vertical-align中默认的属性是baseline基线,说的就是这里的基线。

行高: 文本基线之间的距离。

行距: 文本底线和顶线之间的距离。

通过图我们可以看出行高还是等于字体大小加上行距,即

line-height = font-size + 行距

行内框 行框 内容区

行内框:行内框的高度等于字体的高度,当设置行高时,行内框不变,改变的是行距,当设置padding的时候,行内高不变,改变的是内容区域。

行框:一行文本中,可能有多种不同的文本,但是他们的基线baseline是对其的,即在一条水平线上,此时不同的文本有不同的行内框,但是改行的行框是以本行最大的为准。

内容区域:内容区域是font-size+padding

居中

上面我们了解到line-height = font-size + 行距,那么也就是line-height = 半行距 + font-size + 半行距,所以我们经常在文本居中中会使用到height = line-height = xx px

css – height如何自动与line-height交互:0和不同的font-size

css – height如何自动与line-height交互:0和不同的font-size

HTML:

<div>
  <span>Some text here...</span>
</div>

CSS:

div {
    line-height: 0;
}

在这种情况下,div获得高度:0.

但是,当我指定更大的字体大小时

span {
    font-size: 100px;
}

虽然行高:0,但div的高度为非零.

您可以在https://jsfiddle.net/cjvpLfv2/查看演示

编辑:在https://jsfiddle.net/cjvpLfv2/12/再添一个演示

如果我将span-size:100px应用于span和div,则div再次获得高度:0px

我的问题是height如何在这种简单的情况下自动与行高和字体大小交互(只有一个内联元素的块级容器)

解决方法

尽管所有元素(包括span元素)的行高CSS样式为0,但它在浏览器中的显示方式似乎不同.我试图在跨度中添加多行,并且外部div的高度相应地相乘:

https://jsfiddle.net/cjvpLfv2/4/

因此,对于大字体大小,浏览器似乎不允许行高为0. line-height超过0的字体大小在Chrome中显示为17px.

如果将spans的display属性设置为inline-block,则行不再堆叠,但行高保持不变:

https://jsfiddle.net/cjvpLfv2/6/

如果将spans的display属性设置为block,则按预期应用line-height:0:

https://jsfiddle.net/cjvpLfv2/7/

我没有找到任何关于此行为的文档,而box-model page on mdn只声称:

for non-replaced inline elements,the amount of space taken up (the contribution to the height of the line) is determined by the line-height property

css———详解height与line_height

css———详解height与line_height

定义

height指的是块级别元素的高度;

line-height指的是元素内容的高度。

 

height和line-height的联系

CSS中起高度作用的应该就是height以及line-height。height是用来设置元素的高度,比如img的高度、div的高度等。

如果不设置div的高度时,是div的font-size决定了div的高度还是line-weight的值?

测试一

CSS:
    .test1{font-size:20px; text-align:center;line-height:0; border:1px solid black; background: red;} 
html:
    <div class="test1">测试</div>

结果:

 

 


 

测试二

 

CSS:
    .test2{font-size:1px; text-align:center;line-height:20px; border:1px solid black; background:red;}
html:
      <div class="test2">测试</div>

结果:

 


 

结论:在没有设置div的height属性时,div的高度根据line-height的大小而变化,且文字垂直居中。

 

div的height与line-height的大小关系不同时,会有什么显示结果呢?

 

(1)height = line-height时
在这里插入图片描述
(2)height>line-height时
在这里插入图片描述
(3)height<line-height时
在这里插入图片描述

今天关于深入理解css之line-heightcss的line-height的讲解已经结束,谢谢您的阅读,如果想了解更多关于CSS height 与 max-height min-height、css line-height、css – height如何自动与line-height交互:0和不同的font-size、css———详解height与line_height的相关知识,请在本站搜索。

本文标签: