《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(一)

简介: 《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(一)

前言


《css 揭秘》这本书以案例的形式,介绍了 47 个网页设计经典难题的解决方案,我在学习之余将其一一记录下来,方便以后回顾;本篇介绍下半部分 20-47 的案例效果及代码。

上一篇:《css揭秘》- 47个不可不知的 css 技巧(上篇0-19)

在线预览 play.csssecrets.io


20-连字符断行


介绍:连字符断行可以解决两端对齐时单词间距异常的 bug, 也就是 单词孤岛现象,css3 中引入了一个属性 hyphens,将其设置为 auto 可以达到我们想要的效果。


1687781188260.png



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


21-插入换行


介绍:当基于结构与样式分离原则,使用语义化 ‘定义列表’ 标签来做样式时候,通常会遇到换行问题,下面介绍一种友好的解决方案。


1687781203739.png


<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>
/**
 * Inserting line breaks
 */
dt, dd {
    display: inline;
    margin: 0;
}
dd {
    font-weight: 600;
}
dd + dt::before {
    content: "\A";
    white-space: pre;
}
dd + dd::before {
    content: ', ';
    font-weight: normal;
    margin-left: -.25em;
}
body {
    font: 150%/1.6 Baskerville, Palatino, serif;
}


22-文本行的斑马条纹


背景知识:css 渐变、background-size、‘条纹背景’、‘灵活的背景定位’。

介绍:斑马线效果经常用在 table 里,其实文本行中也很适合,这里使用渐变背景来实现。


1687781220072.png


<pre>
  <code>while (true) {
    var d = new Date();
    if (d.getDate()==1 &amp;&amp;
        d.getMonth()==3) {
      alert("TROLOLOL");
    }
  }</code>
</pre>
/**
 * Zebra striped text lines
 */
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 }


23-调整 tab 的宽度


介绍:当在网页中显示大量代码时候,默认的tab 锁进8个字符会显的过宽不好看,这里使用 css3 新的 tab-size 属性来改变 tab 锁进的字符数。


1687781236110.png


<pre><code>// Default tab size
while (true) {
  var d = new Date();
  if (d.getDate()==1 &amp;&amp;
      d.getMonth()==3) {
    alert("TROLOLOL");
  }
}</code></pre>
/**
 * Adjusting tabs
 */
pre { 
    padding: .5em;
    line-height: 1.5;
    background: hsl(20, 50%, 95%);
    font-family: Consolas, Monaco, monospace;
}
pre:nth-of-type(2) { tab-size: 2 }
pre:nth-of-type(3) { tab-size: 4 }
pre:nth-of-type(4) { tab-size: 0 }
code {
  font: inherit;
}


24-连字


介绍:英文字体中默认情况下有些字形之间会发生冲突,导致显示不清楚 比如大多数衬线字体中的 f 和 i, 这里介绍 css3 中引入的 font-variant-ligatures 来解决。


1687781250802.png



/**
 * Ligatures
 */
body {
    font: 200%/1.6 "Adobe Caslon Pro", Baskerville, serif;
    font-variant-ligatures: common-ligatures discretionary-ligatures historical-ligatures;
}


25-华丽的 & 符号


背景知识:通过 @font-face 规则实现基本的字体嵌入。

介绍:一种不通过额外的 dom 包裹,来单独对 & 符号进行美化的方案


1687781263370.png


<h1>HTML & CSS</h1>
/**
 * Fancy Ampersands
 */
@font-face {
    font-family: Ampersand;
    src: local('Baskerville-Italic'), local('GoudyOldStyleT-Italic'), local('Garamond-Italic'), local('Palatino-Italic');
    unicode-range: U+26;
}
h1 {
    font-family: Ampersand, Helvetica, sans-serif;
}


目录
相关文章
|
7月前
|
移动开发 前端开发 JavaScript
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
|
7月前
|
前端开发 JavaScript
如何固定html表格头部,用css样式即可实现,操作简便、代码简单
如何固定html表格头部,用css样式即可实现,操作简便、代码简单
74 0
|
JSON 前端开发 JavaScript
jQuery操作CSS
jQuery操作CSS
81 0
|
前端开发
CSS 高阶小技巧 - 角向渐变的妙用!
CSS 高阶小技巧 - 角向渐变的妙用!
110 0
|
JavaScript 前端开发
【jQuery学习】—jQuery操作CSS和表格
【jQuery学习】—jQuery操作CSS和表格
|
存储 前端开发 JavaScript
JavaScript操作表格及CSS样式
JavaScript操作表格及CSS样式
186 0
|
前端开发
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
194 0
|
前端开发 JavaScript
使用JS操作CSS
一.什么是css? Cascading Style Sheets 通常称为CSS样式表或层叠样式表(级联样式表) CSS用于控制网页的外观 (HTML是用于控制网页结构的,JS是控制网页的行为) Css让界面变得更加美观
|
前端开发 流计算
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)
148 0
|
前端开发
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
91 0
下一篇
DataWorks