css首字下沉

您不会没有注意到我们在新博客设计中使用的首字母缩略词效果,以及大多数浏览器显示的第一行大写字母(除了Safari,我将在稍后说明的原因)。

有很多hacky方法可以实现这种效果,但是最干净,最可维护的方法是纯CSS ,它使用:first-letter:first-line伪类。

这种方法意味着不需要额外的标记,没有图像,也不需要了解内容-无论首字母和第一行是什么,它们都会生效。

这是实现它的CSS

#post-content > p:first-child:first-line,
#post-content > .ad:first-child + p:first-line
{text-transform:uppercase;position:relative;font-size:0.95em;letter-spacing:1px;
}#post-content > p:first-child:first-letter,
#post-content > .ad:first-child + p:first-letter
{letter-spacing:0;text-transform:uppercase;color:#628fbe;font-family:times,serif;font-size:3.5em;float:left;margin:0.13em 0.2em 0 0;line-height:0.7;
}

您会注意到,如何在内容区域内的第一段中使用两种不同的选择器来尝试应用效果。 它需要足够灵活,以允许在紧接该段落之前标记为<div class="ad">的广告的存在或缺失。 因此,理想情况下,我将使用:first-of-type ,它在其父上下文中选择指定类型的第一个元素:

#post-content > p:first-of-type:first-line
{
}#post-content > p:first-of-type:first-letter
{
}

但这还没有得到广泛支持。 我们使用的选择器意味着我们将获得对IE8的支持,否则我们将不会提供支持。

不幸的是,对于第一线的大写,我们没有获得对Safari的支持。 这并不是因为选择器的原因-它支持此处显示的所有示例,并且确实在这些规则中应用了其他属性-只是没有应用text-transform 。 我在许多不同的情况下都注意到了这一点,其中Safari出于没有显而易见的原因不应用转换。 我已经看到它无法应用于<input>元素(在该元素上它对应于相应的<button> ,并且在这里我们看到它无法应用于段落的第一行,即使将其应用于整个段落也可以! 去搞清楚。

对于首字下沉本身,您可以看到它非常容易实现。 该规则中值得注意的是,将页margin-topline-height结合起来使字母定位。 如果省略这两个属性,则会得到以下结果:


应用行高之前的首字下沉。

从左到右,您所看到的是Firefox,Opera和Safari。 实际上是Firefox渲染错误 ,而Opera和Safari却正确显示了Firefox – Firefox仍将父段落的行高应用于第一个字母,而忽略了其大得多的字体大小,而其他浏览器正确地应用了一行-与字母的字体大小相对应的高度。

因此,我们可以利用差异来平衡浏览器之间的结果-逐步减小行高,这与Firefox毫无区别,直到我们在Opera和Safari(和IE8 )中得到相似的结果:


行高后的首字下沉被应用。

然后,这只是在垂直位置看起来正确之前添加页margin-top的情况。

这不是我第一次在Firefox中看到这种渲染行为。 而且,由于我们没有只能适用于Firefox的CSS hack,因此这种差异实际上是我们可以应用浏览器调整的唯一方法。 而且随着浏览器调整的进行,这完全是面向未来的-如果Firefox修复其实现并应用正确的行高,则它会像其他版本一样首先问世。

具有讽刺意味的是,当Firefox是唯一会出错的浏览器时,我们应该修复除Firefox外的所有浏览器! 但这就是我们行业的运作方式-Firefox,就像您的小姐一样,“永远是对的”。

缩图: Thoth

翻译自: https://www.sitepoint.com/a-simple-css-drop-cap/

css首字下沉

css首字下沉_一个简单CSS首字下沉相关推荐

  1. python井字棋_[Python100行系列]-井字棋游戏

    博客:Hzy的博客 | Hzy Blog​hzeyuan.cn一些学习python的小项目,小游戏.python小项目​github.com 话不多说,今天尝试用turtle库来写一个井字棋游戏.1. ...

  2. Pico.css大道至简返璞归真--一个简单轻量化的CSS框架

    Pico.css是什么? Pico.css是一个简单轻量化的CSS UI框架,最大的特点是样式都基于HTML原始的标签名和内置的属性,少用甚至是不用class来定义样式,写出来的代码语义清晰,可维护性 ...

  3. excel转mysql 工具_一个简单的批量excel转mysql工具

    背景:工作中,经常发现需要将excel中的表数据导入到mysql中,实际操作一般都是用navcat,但是使用中也发现navcat只支持单个表导入,对xlsx格式支持不友好.于是写了这么一个导表工具.在 ...

  4. hosts多个ip对应一个主机名_一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端...

    WebSSH 一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端.它是用Python编写的,基于tornado,paramiko和xterm.js. 特征 支持SSH密码验证,包括空密码. ...

  5. react css多个变量_如何使用CSS变量和React上下文创建主题引擎

    react css多个变量 CSS variables are really cool. You can use them for a lot of things, like applying the ...

  6. css左右布局代码_如何使用CSS位置来布局网站(带有示例代码)

    css左右布局代码 Using CSS position to layout elements on your website can be hard to figure out. What's th ...

  7. 组织结构图插件_一个简单直接的组织结构图插件

    组织结构图插件 Vue-orgchart (vue-orgchart) It's a simple and direct organization chart plugin. Anytime you ...

  8. android实现mysql数据库存储_一个简单的Android端对象代理数据库系统的实现(二、执行+存储)...

    这是我之前在武汉大学彭智勇老师那边做过的一个对象代理数据库系统.文中给出了一整个系统的几乎所有代码,经测试可正常运行.文章比较长,超出了知乎的最长文章范围,因此分为两篇文章.这是第二篇. 执行 执行部 ...

  9. css hover变成手_如何用CSS设置连接鼠标在上面是变成手型

    展开全部 用CSS设置连接鼠标在上面变成手型的方法:只需要对需32313133353236313431303231363533e59b9ee7ad9431333365666238要设置鼠标指针的文字加 ...

最新文章

  1. 中波磁棒天线在接收150kHz导航信号方向性
  2. sudoers配置文件
  3. iOS获取已安装的app列表(私有库)+ 通过包名打开应用
  4. Java进阶:default方法说明
  5. maven修改setting文件后重启_Maven项目构建
  6. linux服务器监听服务sid_linux下重启oracle服务:监听器和实例
  7. java ssl 无证书_java – 如何修复SSL – 没有可用的证书
  8. 【操作系统】进程の易错点解答
  9. mysql 临时索引_MYSQL临时表创建索引
  10. [Java] 蓝桥杯 BEGIN-1 入门训练 A+B问题
  11. ruby所有版本下载地址
  12. 2022NISCTF--web
  13. 北京三大春天赏花圣地
  14. 高并发,我把握不住啊!
  15. 国内代码托管平台gitee的使用
  16. LTE CA带宽能力(CA bandwidth classes)规定了聚合带宽限制,见36.101中表格Table 5.6A-1
  17. 状语从句不是简单句_上海中考状语从句专题-练习
  18. iOS通过dSYM文件分析crash
  19. 使用Notepad++查看class文件
  20. adb shell monkey

热门文章

  1. C++字符串里提取数字
  2. 关于路缘石成型机管理你想象能有几多种变化
  3. 无线网络破解________破解wap密码..............
  4. 小程序---365笔记第11天---微信小程序登录接入
  5. 【FFmpeg 系列】 SDL 音视频渲染(七)
  6. python houdini_Houdini Python开发实战 课程笔记
  7. 非wait线程即时唤醒epoll_wait
  8. [阿发你好]C/C++学习指南
  9. html交叉轴排列,10-flex 项目交叉轴单独对齐
  10. 正确的慢跑姿势是怎样的?