<!-- 《CSS世界》张鑫旭著 -->

温和的padding属性

因为默认的box-sizing是content-box,所以使用padding会增加元素的尺寸。

尺寸表现对具有块状特性的元素和内联元素而言有些许不同。

很多人会觉得内联元素的padding只会影响水平方向,不会影响垂直方向。这种认知是不准确的,内联元素的padding在垂直方向同样会影响布局,影响视觉表现。只是因为内联元素没有可视宽度和可视高度的说法,视觉上没有改变和上一行下一行内容的间距,因为给我们的感觉是垂直padding没有起作用。

如果我们给内联元素加个背景色或者边框,自然可以看到其尺寸空间确实受padding影响了。

示例见 http://demo.cssworld.cn/4/2-1.php  可以看到尺寸有效,但是对上下元素的原本布局没有影响,仅仅是垂直方向发生了重叠。

CSS中还有很多其他场景或属性会出现这种不影响其他元素布局而是出现层叠效果的现象。比如:relative元素的定位、盒阴影box-shadow以及outline等。这些层叠现象虽然看似类似,但实际上是有区别的。分为两类:一类是纯视觉层叠,不影响外部尺寸;另一类则会影响外部尺寸。盒阴影box-shadow以及outline属于前者,而这里的inline元素的padding层叠属于后者。因为父元素设置overflow: auto,会出现滚动条。

示例 http://demo.cssworld.cn/4/2-2.php  实现了利用内联元素的padding实现高度可控的分割线。

padding的百分比值

padding的百分比值无论是水平方向还是垂直方向均是相对于宽度计算的

标签元素内置的padding

(1)ol/ul列表内置padding-left,但是是px。Chrome浏览器下是40px

(2)很多表单元素都内置padding,例如:input、textarea、button等

<button>按钮元素就算我们重置padding为0,在Firefox浏览器下,左右依然有padding,可以试试使用:button::-moz-focus-inner { padding: 0; }

按钮padding与高度计算不同浏览器下千差万别

padding 与图形绘制

(1)不使用伪元素,仅一层标签实现“三道杠”分类图标效果。这里主要是background-clip属性的用法

(2)不使用伪元素,仅一层标签实现双层圆点效果。和上面例子的原理一样。

示例见 http://demo.cssworld.cn/4/2-4.php

《CSS世界》读书笔记(十)的更多相关文章

  1. CSS揭秘读书笔记 (一)

    CSS揭秘读书笔记      (一) 一.半透明边框 要想实现半透明边框可以使用border: border: 10px  solid  hsla(0,0%,100%,.5); background: ...

  2. 《CSS世界》笔记二:盒模型四大家族

    上一篇:<CSS世界>笔记一:流/元素/尺寸下一篇:<CSS世界>笔记三:内联元素与对齐 写在前面 在读<CSS世界>第四章之前,粗浅的认为盒模型无非是margin ...

  3. 《精通CSS》读书笔记(一)

    最近新添16本书,目前开始看陈剑瓯翻译的<精通CSS——高级Web标准解决方案>(Andy Budd, CSS Mastery -- Advanced Web Standards Solu ...

  4. 《css世界》笔记之流、元素与基本尺寸

    1. 块级元素 基本特性:就是一个水平流上只能单独显示一个元素,多个块级元素则换行显示. 块级元素和"display 为block 的元素"不是一个概念,display:list- ...

  5. css 揭秘-读书笔记

    css 揭秘 [希]Lea verou 著 css 魔法 译 该书涵盖7大主题,47个css技巧,是css进阶必备书籍,开阔思路,探寻更优雅的解决方案.这本书完全用css渲染出的html写成的(布局. ...

  6. JavaScript权威设计--CSS(简要学习笔记十六)

    1.Document的一些特殊属性 document.lastModified document.URL document.title document.referrer document.domai ...

  7. JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)

    1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与 ...

  8. 《Two Days DIV + CSS》读书笔记——CSS选择器

    1.1.2 CSS选择器 CSS 选择器最基本的有四种:标签选择器.ID 选择器.类选择器.通用选择器. [标签选择器] 一个完整的 HTML 页面由很多不同的标签组成,而标签选择器,则是决定哪些标签 ...

  9. 《Two Days DIV + CSS》读书笔记——CSS控制页面方式

    1.1 你必须知道的知识 (其中包括1.1.1 DIV + CSS的叫法解释:1.1.2 DIV + CSS 名字的误区:以及1.1.3 W3C简介.由于只是背景知识,跳过该章.) 1.2 你必须掌握 ...

  10. CSS Grid 读书笔记

    基本概念 MDN上的解释是这样的 CSS Grid Layout excels at dividing a page into major regions or defining the relati ...

随机推荐

  1. go与c语言的互操作

    https://tonybai.com/2012/09/26/interoperability-between-go-and-c/ https://tonybai.com/2016/02/21/som ...

  2. 【Dubbo 源码解析】02_Dubbo SPI

    Dubbo SPI:(version:2.6.*) Dubbo 微内核 + 插件 模式,得益于 Dubbo SPI .其中 ExtentionLoader是 Dubbo SPI 最核心的类,它负责扩展 ...

  3. 【Excel】读取CSV文本

    Option Explicit ' CSV形式テキストファイル(5カラム)読み込みサンプル Sub READ_TextFile() Const cnsTITLE = "テキストファイル読み込 ...

  4. Python的循环导入问题

    循环导入的最好的解决方法是从架构上优化,即调整模块和模块成员变量的设计.一个好的原则是:可导出的成员变量,都不应该依赖于导入进来的成员变量. 但是在业务开发的过程中,总会遇到通过架构层面解决不了的导入 ...

  5. 【GIS】Mapbox-json配置

    1.json的MIME配置 application/json 问题:客户端浏览器不接受 MIME 类型的请求页面

  6. 【GIS】无人机相关技术(转)

    ---------------------------------------------------------------------------------------------------G ...

  7. Vue学习路线

    前言:学习Vue已经两个月了,目前前端的框架用得比较多的就是Bootstrap和Vue,而Bootstrap是开发人员用得较多,因为较为简单,上手也快.Vue是目前很火的数据驱动框,17年的时候就开始 ...

  8. Dart 语言简易教程系列

    google Fuchsia系统 及 dart语言简介 在 InteIIiJ IDEA 中搭建 Dart 的开发环境 Dart Linux 开发环境搭建 Dart 语言简易教程(一) Dart 语言简 ...

  9. 【CF666C】Codeword 结论题+暴力

    [CF666C]Codeword 题意:一开始有一个字符串s,有m个事件,每个事件形如: 1.用一个新的字符串t来替换s2.给出n,问有多少个长度为n的小写字母组成的字符串满足包含s作为其一个子序列? ...

  10. ubuntu百度云下载大文件

    一.实验环境 ubuntu16.04 + 百度在线云盘 二.下载小文件步骤 小文件直接点击右侧的下载按钮即可,弹出文件保存对话框 三.大文件下载步骤 大文件使用如上方式下载时提示,请使用网盘客户端下载 ...