<!-- 《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. MTK USER版本禁止log输出

    1.bootable/bootloader/lk/app/mt_boot/mt_boot.c sprintf(cmdline,"%s%s",cmdline," print ...

  2. go关键字之type用法

    1.定义结构体 type Student struct {     name string code int }       2.类型别名 type i int64 var age i = 30   ...

  3. SVN常用命令说明

    本文转载至  http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html :1.5 及更新版本 名词说明: WC:W ...

  4. Zephyr学习(一)Zephyr介绍

    Zephyr是一个面向物联网的嵌入式实时操作系统(RTOS),是Linux基金会旗下的一个项目,具有以下特点: 1.安全的,灵活.高可扩展性,支持多种硬件平台(ARM.ARC.X86.xtensa.n ...

  5. 关于mysql中触发器old和new

    1.当使用insert语句的时候,如果原表中没有数据的话,那么对于插入数据后表来说新插入的那条数据就是new,如图所示: 2.当使用delete语句的时候,删除的那一条数据相对于删除数据后表的数据来说 ...

  6. centos6上调整lv逻辑卷

    author:headsen chen date:2019-03-18  14:48:17 1,查看分区状态,发现/ 分区不够用./home分区太大了.浪费 [root@localhost ~]# d ...

  7. webpack使用小记

    前言 webpack是目前前端开发必不可少的一款模块加载器兼构建工具,它能极其方便的处理各种资源的打包和使用, 让前端开发获得与后端开发几乎一致的体验. webpack特点 webpack 是以 co ...

  8. post数据过多时,有可能会丢失数据

    开奖时,post时请求的user_id过多,导致活动id丢失

  9. react 中的绑定事件

    handleOpen = (e)=> { this.setState({ open: true }) } <Button color='primary' onClick={this.han ...

  10. oracle数据库字符集查询

    1>数据库服务器字符集 select * from nls_database_parameters,其来源于props$,是表示数据库的字符集. 查询结果如下 NLS_LANGUAGE AMER ...