css文本行高是哪个属性_CSS中的line-height行高属性的使用技巧小结

CSS中的line-hight属性是用来控制文本行之间的空隙的。它一般情况下没有单位的设定(如:line-height:1.4;)所以这是一个按字体尺寸的比例来计算。这对印刷版来说是一个很重要的属性。线条过低就会挤在一起,线条过高就会相距甚远,这两种情况都会降低可读性。不过你可能已经知道了这一点。

本文中,我们将把注意力放在一些设计上。如果你知道(或可以计算出)的line-height的精确值,你可以做一些奇妙的东西!

每行文本设置不同颜色

很遗憾这里没有::nth-line(),我们直接使用是不可靠的,因为会有很多不同的事情导致文本在不同的地方被打乱。

尽管是非标准的,但这里还有一种用法就是使用一个元素的背景作为文字的背景。

C/C++ Code复制内容到剪贴板

.text {

-webkit-background-clip: text;

-webkit-text-fill-color: transparent;

}

而这里还有另一个绝招,你可以用linear-gradient()来让颜色排列在一起就不会褪变成另一个颜色。它只是会突然的结束然后开始另一个。比方说我们知道line-height是22px,我们可以制作一个像这样的阶梯色。

CSS Code复制内容到剪贴板

.text {

background-image: linear-gradient(

tobottombottom,

#9588DD,

#9588DD22px,

#DD88C822px,

#DD88C844px,

#D3DD8844px,

#D3DD8866px,

#88B0DD66px,

#88B0DD);

}

结合着两种技巧

在不支持文本背景剪裁的浏览器里,比如Firefox,你会得到一个文本后面的实心背景颜色块。也许这很酷你会喜欢它。但也可能你只是想要得到那样的文本颜色。在这种情况下,你可以使用@support去单独的支持它。

此外,当你需要在各处使用line-height,把他设置成变量或许会更好。我将在这里使用SCSS,或许有一天在CSS中也可以使用变量。所以改变之后,他依旧被渲染,看起来它一直保持工作。

CSS Code复制内容到剪贴板

$lh: 1.4em;

body {

font-size: 1em;

line-height: $lh;

}

@supports (-webkit-background-clip: text) {

p {

-webkit-background-clip: text;

-webkit-text-fill-color:transparent;

background-image: linear-gradient(

tobottombottom,

#9588DD,

#9588DD$lh,

#DD88C8$lh,

#DD88C8$lh*2,

#D3DD88$lh*2,

#D3DD88$lh*3,

#88B0DD$lh*3,

#88B0DD);

}

}

在元素的顶部使用这种方式是最容易的。下面是一个例子,重点是前几行被改变。

CSS Code复制内容到剪贴板

.text {

-webkit-background-clip: text;

-webkit-text-fill-color:transparent;

background-image: linear-gradient(

tobottombottom,

rgba(white, 0.8),

rgba(white, 0.8) $lh,

rgba(white, 0.6) $lh,

rgba(white, 0.6) $lh*2,

rgba(white, 0.4) $lh*2,

rgba(white, 0.4) $lh*3,

rgba(white, 0.2) $lh*3,

rgba(white, 0.2));

}

如果我们试图在任意数量的文本上对最后几行进行定位,这将变得更加困难。在这种情况下,我们需要让第一个颜色带从顶部开始向下渐变。幸运的是我们可以用calc()做到这一点。

CSS Code复制内容到剪贴板

.text {

-webkit-background-clip: text;

-webkit-text-fill-color:transparent;

background-image: linear-gradient(

tobottombottom,

rgba(white, 0.8),

rgba(white, 0.8) calc(100% -66px),

rgba(white, 0.6) calc(100% -66px),

rgba(white, 0.6) calc(100% -44px),

rgba(white, 0.4) calc(100% -44px),

rgba(white, 0.4) calc(100% -22px),

rgba(white, 0.2) calc(100% -22px),

rgba(white, 0.2));

background-position:bottombottomcenter;

}

还有其他方法也可以做到这样的效果,比如覆盖伪元素梯度(用pointer-events: none;所以它并不恼人)。

文字之间的行线

使用一个和我们上面使用的相类似的solid-color-stops的技术,我们可以建立一个1px的线在已知的line-height上重复。最简单的方法是使用repeating-linear-gradient()来确保其他元素可以正常使用(比如说padding也是基于line-height的)。

CSS Code复制内容到剪贴板

.parent {

padding: $lh*2;

background:#082838;

background-image: repeating-linear-gradient(

tobottombottom,

rgba(white, 0)   0,

rgba(white, 0)   $lh/1em*16px-1,

rgba(white, 0.1) $lh/1em*16px-1,

rgba(white, 0.1) $lh/1em*16px

);

}

为了得到用1px的线,我们需要知道line-height的像素值是多少,然后用这个值在减去1px。我们的目标是正好在line-height的高度上进行梯度的重复,来让这个空间的最后一个像素是一条线。因为我们已经不是body字体大小的1em,而是16px了。而且line-height的设置用的是em的单位。所以我们可以通过1em划分要删除的单元,然后复制成16px并在需要的时候减1.

每一行图片的位置

如果你知道精确地line-height,你还可以做的另一家事情是用background-size在纵轴上去匹配它。然后你把他垂直重复,他将会在每一行有一个图片的队列。

CSS Code复制内容到剪贴板

.text

background-image:url(image.svg);

background-size: $lh $lh;

background-repeat:repeat-y;

padding-left: $lh*2;

}

line-height 属性的继承问题曾出现这样一个问题:

CSS Code复制内容到剪贴板

p {

line-height:17px;

}

品牌:XZX

市场价:145元

颜色:黑色

面料:棉

尺码:S  M  L

衣长:S 89  M 90   L 91

肩宽:S 35  M 36   L 37

胸围:S 88  M 92   L 96

下摆:S 104 M 108  L 112

袖长:S 17  M 17.5 L18

由于测量方法不同,误差在2CM左右!

你会发现上面例子的文字会重叠在一起!这是什么原因呢?

由于.detail-content 中的 p 元素继承了默认设置的全局样式 line-height:17px,而自定义区块又是由商家自定义,其内字体被设置为了 font-size:30px;(可能为任意值),根据 Inline formatting model,得知该文字的 line-box 高为 17px,多出的字体部分上下溢出,所以会出现字体重叠的现象。

那这个问题如何解决呢?

解决方案:我们给 .mdse-detail 下的 p 元素设定样式属性 line-height:1.4。

为什么解决方案里的 1.4 不带单位?

元素的 line-height 属性值会继承父元素(或祖先元素)的 line-height 属性值,如果属性值有单位,则继承的值是换算后具体的 px 值而非原始的值(比如:em、%),而如果属性值没有单位,则浏览器会继承数值(无单位),然后根据该元素的 font-size 值重新解析得到新的 line-height 值。这个和 table 的 tr 设置 display 属性有一点点类似(tr.style.display = ”;,IE 显示 block,而 Firefox 等标准浏览器显示 table-row)。

还有另外一个相对低效的方法,但也不失为一个快捷的解决方案:

CSS Code复制内容到剪贴板

.mdse-detail p * {

line-height:140%;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模2运算及模2运算式计算 (js)

概述 学习二维码生成的时候卡在纠错码部分,然后就接触到了伽罗华域,了解到模2运算,恰好前不久刚了解了波兰表达式,就尝试写一个支持模2运算的算式解析计算。 结果 10011*101101.M2Calc() >"1011010" 涉及内容 模…

react配合python_部署React前端和Django后端的3种方法

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。2020年4月7日星期二,马修西格尔类别:Django如果您要用Django REST开发web应用程序后端,并使用React或Vue开发应用程序前端。有很多方法实现。你需要做出…

伽罗瓦域(256) 生成指定纠错码字的生成多项式 (js)

效果 使用 复制code 保存为html 涉及内容 1、有限域、伽罗瓦域(256) 2、对数反对数 3、XOR 异或 两个因式各项相乘,当系数项相乘时,指数相加并mod(255) 合并同类项时,相同项的系数合并为 XOR操作; 伽罗瓦域依旧有些犯懵&…

python贪心算法求删数问题_贪心算法删数问题

删数问题给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案。输入示例: 178543 4输出: 13输入示例&am…

二维码-纠错码生成(js)

概要 本文主要为计算,而非对伽罗瓦域等数学内容的深入解析,在知道消息多项式以及纠错数量的情况下通过程序生成对应的纠错码。详细的二维码生成原理参考一个详细全面的二维码生成解析 效果 数据码: 长度16的示例数据码(正常获取的是示例的…

一步一步学python爬虫_初学Python之爬虫的简单入门

初学Python之爬虫的简单入门一、什么是爬虫?1.简单介绍爬虫爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络…

实现二维码-完整三种编码流程加代码解析(javascript)

效果 输入内容:XXXwedewed生日//&sss乐❤XXXwedewed生日//&sss乐❤ 完整的演示效果为,输入内容后会将解码绘制的每一步都展示(有点长就不全截图了,可以直接移至最后复制代码到本地运行): 原理…

可视化排班管理_小白经理的思考日记-可视化看板和走动管理

前言:所谓勤于思,敏于行,实践能提升思考的深度,反思也能更好的指导实践。基于这样的认知,我将过往所学所思所行进行了专题整理,对内化知识和技能结构颇有益。又承蒙付老师抬爱和鼓励,推荐我看《…

headerIP php_PHP curl伪造IP地址和header信息代码实例

原标题:PHP curl伪造IP地址和header信息代码实例curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造:首先是clien…

c++ 使用nacos_为什么选用Nacos?虎牙直播微服务改造实践

原标题:为什么选用Nacos?虎牙直播微服务改造实践“相比文字和图片,直播提供了人与人之间更丰富的沟通形式,其对平台稳定性的考验很大,那么倡导“以技术驱动娱乐”的虎牙直播如何在技术上赋能娱乐?本文将分为…

three.js 拖动场景中物体(原生|拖拽控制器)

非控制器版 拖动场景中的物体实际上是在一个平行于窗口的平面中进行拖动&#xff0c;确定这个平面并确定鼠标在该平面中的位置变化&#xff0c;就将问题转换成简单的2d移动物体了 <!DOCTYPE html> <html> <head><meta charsetutf-8><title>015-…

bch纠错码 码长8_从HDMI视频数据带有BCH纠错码讨论线材对画质的影响

一直感觉几十元的HDMI线已经可以正常传输视频信号,那么几百元应该是接近完美了,再听人说换上几千块的线就让画质黑位什么的提升一大截,认为非常不可思议.但别人又信誓旦旦的说自己是感觉到了明显改变,对这种情况产生的争论最终不会得到正确答案,所以数据党还是从科学的角度先分…

element-ui 可复选树型表格

效果 思路 自定义模板当点击某个行复选框时&#xff0c;其所有后代复选框都要同步状态&#xff0c;且其直系父辈状态需要根据所点击复选框的状态来修正点击全选复选框时&#xff0c;批量同步所有行内复选框状态 代码 非封装组件&#xff0c;按需自行改写 确保引入element-ui…

linux 删除含有关键词的文件_linux下查找包含关键字的文件

在linux下如果要查找包含某个关键字的文件&#xff0c;如要在nagios目录下搜索带有关键字“store-rd-sys”的文件&#xff0c;在终端下运行命令&#xff1a;/usr/local/nagios/etc/* (nagios目录)法1&#xff1a;grep -r “关键字” 路径[rootnagios01 ~]#grep -r "store-…

树形可拖拽排序配置组件

效果 使用场景 vue2下自定义表格表头配置: 列排序&#xff0c;显示/隐藏等。确保表头以配置项的形式加载&#xff0c;这样表格才能对修改后的配置作响应 思路 1、表格使用render函数加载(如有疑问可私信)&#xff0c;通过类似如下的columns配置表头 columns: [{ label: 姓名…

maven 打包指定依赖包_Maven打包成Jar文件时依赖包的问题

我们项目中使用到第三方的库文件&#xff0c;这些jar库文件并没有放到Maven中央库上&#xff0c;导致我们需要在项目中自己配置使用。我们的两三个开发人员对Java都是很熟&#xff0c;因此在使用中遇到了一些问题&#xff0c;表现在&#xff1a;在本地中引入第三方jar包后&…

自适应浮动表单填充布局脚本

效果 1、适合搜素表单布局&#xff0c;查询重置等功能块始终位于最后一行的最后一列 2、适合普通多行两端对齐&#xff0c;未填充满的行左对齐 思路 此脚本目的为实现整齐风格的表单布局&#xff0c;为了达到整齐的效果&#xff0c;每个表单元素或者块都要设置一致的 宽度…

rstudio导入txt文件_R语言 | 读写txt、csv、excel文件

前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了&#xff0c;有点想重新拾起R语言^_^R语言代码略带凌乱&#xff0c;讲真的还是更喜欢Python代码简洁。不过好几年不琢磨R语言&#xff0c;对R语言代码的凌乱美有些新奇&#xff0c;很好玩&#xff0c;这也许就是久别胜新…

erp采购总监个人总结_erp采购总监总结.docx

erp采购总监总结ERP沙盘模拟心得体会——采购总监  刚开始接触ERP&#xff0c;就从学长们那里了解到这门课比较有意思&#xff0c;然后又听老师说我们还有一个为期两周的ERP沙盘模拟&#xff0c;这让我对这门课更有了极大的兴趣。一直期待着沙盘模拟对抗早点到来&#xff0c;…