1.连字符断行

问题:两端对齐的效果的时候,折行效果有的时候真的很丑。
解决:使用hyphens属性。

hyphens 告知浏览器在换行时如何使用连字符连接单词。可以完全阻止使用连字符,也可以控制浏览器什么时候使用,或者让浏览器决定什么时候使用。
它接受三个值:none,manualauto。它的初始值是manual,以匹配现有的行为:我们可以用软连字符手动断字。

width: 8.7em;
font: 180%/1.4 Baskerville, serif;
text-align: justify;
hyphens: auto;

2.插入换行

  • 问题:对于表格元素,如何使多个<dd>元素在同一行,如何在最后一个<dd>元素后面插入换行符
  • 解决方案: 使用伪元素,在<dd><dt>中间插入换行符“\A”.
    <dd><dd>中间插入“,” 使用white-space: pre;保留源代码中的空格和换行 重点代码:
dd + dt::before {//使用伪元素,在<dd><dt>中间插入换行符“\A”.content: "\A";white-space: pre;
}dd + dd::before {//在<dd><dd>中间插入“,”content: ', ';font-weight: normal;margin-left: -.25em;
}

HTML:

<dl><dt>Name:</dt><dd>Lea Verou</dd><dt>Email:</dt><dd>lea@verou.me</dd><dd>leaverou@mit.edu</dd><dt>Location:</dt><dd>Earth</dd>
</dl>

CSS:

dt, dd {display: inline;margin: 0;
}dd {font-weight: 600;
}dd + dt::before {//使用伪元素,在<dd><dt>中间插入换行符“\A”.content: "\A";white-space: pre;
}dd + dd::before {//在<dd><dd>中间插入“,”content: ', ';font-weight: normal;margin-left: -.25em;
}body {font: 150%/1.6 Baskerville, Palatino, serif;
}

3.文本行的斑马条纹

  • 解决:利用linear-gradient创建条纹背景,使其的宽度与行高相符
  • 注意:padding会使元素与条纹背景出现错位,所以要对背景设置background-origin:content-box,消除影响
pre { padding: .5em;line-height: 1.5;background: hsl(20, 50%, 95%);background-image: linear-gradient(rgba(120,0,0,.1) 50%, transparent 0);background-size: auto 3em; //两行background-origin: content-box;font-family: Consolas, Monaco, monospace;
}
code { font: inherit }

4.调整tab的宽度

-问题:tab在浏览器中的宽度为8个字符,我们一般会调整成我们习惯的宽度4或2.

tab-size: 2

5.连字

问题:某些字形与字形相邻时会带来显示上的问题。比如大多数衬线字体中的fi。在css第三版中,引入了font-variant-ligatures属性。

font-variant-ligatures: comon-ligaturesdiscretionary-ligatureshistorical-ligatures

6.自定义下划线

background-image及其相关属性来形成下划线

a {background: linear-gradient(gray, gray) no-repeat;background-size: 100% 1px;background-position: 0 .9em;text-shadow: .05em 0 white, -.05em 0 white;
}

a {background: linear-gradient(90deg, gray 66%, transparent 0) repeat-x;background-size: .2em 2px;background-position: 0 .9em;
}

7.现实中的文字效果

凹进去的字体效果

  • 思路:底部加上浅色投影或者顶部加深色投影

底部加上浅色投影

p {padding: .8em 1em;background: hsl(210, 13%, 60%);color: hsl(210, 13%, 30%);text-shadow: 0 1px 1px hsla(0,0%,100%,.8);
}


顶部加上深色投影

p + p {background: hsl(210, 13%, 30%); color: hsl(210, 13%, 60%);text-shadow: 0 -1px 1px black;
}


文字凸起效果
思路:使用一长串累加的投影,不设模糊并以1px的跨度逐渐错开,使颜色逐渐变暗,然后在底层加上一层强烈模糊的暗投影,从而实现效果

body {background: #58a;color: white;text-shadow: 0 1px hsl(0,0%,85%),0 2px hsl(0,0%,80%),0 3px hsl(0,0%,75%),0 4px hsl(0,0%,70%),0 5px hsl(0,0%,65%),//亮度l逐渐变暗0 5px 10px black; //底层加上一层强烈模糊的暗投影font: bold 500%/1 Rockwell, serif;
}

空心字
思路:使用SVG描边方法

<h1>CSS</h1><h1><svg overflow="visible" width="2em" height="1.2em"><use xlink:href="#css" /><text id="css" y="1em">CSS</text></svg></h1>
h1 {margin: 0;color: white;
}h1:first-child { text-shadow: 1px 1px black, -1px -1px black, 1px -1px black, -1px 1px black; }h1 text { fill: currentColor }
h1 use {stroke: black; stroke-width: 6;stroke-linejoin: round;
}body {background: deeppink;font: bold 200%/1 Rockwell, serif;
}

字体外发光
思路:准备几层重叠的text-shadow,不考虑偏移量,颜色保持跟字体一样。
可以加上过渡效果,使得鼠标悬停时出现效果,transition:1s.

        a {padding: .5em;line-height:1.5;background: #203;color: white;transition: 1s;}a:hover {text-shadow: 0 0 .1em, 0 0 .3em;}


如果在hover的时候把字体本身的颜色变成透明,则出现模糊效果

    a:hover {color: transparent;text-shadow: 0 0 .1em white, 0 0 .3em white;}

用滤镜来实现模糊效果

a:hover {filter: blur(.1em);}


本文整理自《CSS揭秘》

CSS中的字体与排版相关推荐

  1. CSS中对字体进行设置

    在对字体设置的时候,我们可以设置字体的字体系列,字体的样式,字体的大小,字体加粗,和字体转换.下面我们来一一的对字体的这些设置进行分析. 字体系列: 在CSS中有两种类型的字体系列: 通用的字体系列: ...

  2. css 字体图标更改颜色_在CSS中更改字体

    css 字体图标更改颜色 CSS字体属性 (CSS font properties ) Font properties in CSS is used to define the font family ...

  3. css引入本地字体文件,关于css中引入字体文件

    关于css中引入字体文件 css样式代码: @font-face { font-family: Lovelo-Black;//定义font的名字 src: url(font/Lovelo Black. ...

  4. html怎么设置字体于字体的间隔,如何在css中设置字体间隔

    如何在css中设置字体间隔 发布时间:2021-05-15 15:39:05 来源:亿速云 阅读:81 作者:Leah 如何在css中设置字体间隔?针对这个问题,这篇文章详细介绍了相对应的分析和解答, ...

  5. HTML列表的简单使用以及在我们网页编程中的单位你了解多少??CSS中的字体样式你又了解多少,进来康康!!HTML、CSS(三)

    文章目录 列表 无序列表 有序列表 列表嵌套 定义列表 单位 长度单位 像素 px 百分比 em 颜色单位 颜色名为单位 RGB值 字体样式 字体分类 衬线字体 非衬线字体(无衬线字体) 字体的其他样 ...

  6. 关于CSS中的字体尺寸设置 em rem等

    常用单位 在CSS中可以用很多不同的方式来设定字体的尺寸.一般来说,这些单位被分成两大类:绝对单位(absolute)和相对单位(relative). 绝对单位在大多数情况下是相对于某些实际量度而言的 ...

  7. CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体

    font-family的调用方法: font-family:Arial,'Times New Roman','Microsoft YaHei',SimHei; font:bold 12px/0.75e ...

  8. HTML/CSS中的字体样式font-family的中英对照

    字体中英对照表 中文名称 英文名称 unicode 新细明体 PMingLiU \65B0\7EC6\660E\4F53 细明体 MingLiU \7EC6\660E\4F53 标楷体 DFKai-S ...

  9. css中的字体单位换算

    在css中常用的字体单位除了像素px就是em rem 那他是怎么换算的呢? 1em就是指父级标签字体的大小 <style>div{font-size: 30px;}p{font-size: ...

最新文章

  1. Linux快速入门02-文件系统管理
  2. zcmu1540(二分)
  3. Visual Studio 2017 、2019安装Windows SDK失败的解决办法(改盘符引起)
  4. jQuery教程2---隐藏p标签内容-按钮
  5. 数字图像处理之图像基础
  6. ELK套件FileBeat部署
  7. 有了代码怎么用python爬虫_python实现简单爬虫功能
  8. 走错路也要美美的!富有创意的404页面设计灵感
  9. 部署 Job (第四部分)
  10. PL/SQL程序设计(七)—— 触发器
  11. 影视.20190507
  12. 你所不知道的BGP知识,Peering 和IP-Transit.
  13. ROS 自定义地图导航
  14. 百度小程序html转码,百度小程序转换工具
  15. 局域网内通过ip获取主机名
  16. 大恒相机Python版Qt界面(一)
  17. 谷歌浏览器上启用flash_如何在任何Web浏览器上启用私人浏览
  18. 分享Qt多工程多目录的编译案例,subdirs
  19. 武汉安全员ABC证报名条件有什么要求?甘建二
  20. 计算机考研地域重要还是学校,考研选城市还是选大学?想知道考研学校重要还是地域重要...

热门文章

  1. 好压zip格式的文件,然后用WinRAR解压缩该文件报错
  2. 分享一个打字练习网站
  3. linux下运行htk,Linux下安装测试HTK
  4. Java实体类设置联合主键_Hibernate 注解方式设置联合主键
  5. Basler工业相机使用环境配置——Linux系统
  6. 乐队设备---均衡器的学习和使用
  7. 现在学java的都是傻子
  8. 项目资源管理的流程、技术和工具
  9. Linux进阶篇--磁盘阵列(RAID)和逻辑卷管理
  10. 幼儿园体育游戏电子计算机教案,幼儿园中班体育游戏教案