这个笔记只是我读了《css揭秘》后的一些摘要,实现原理并不会讲的很清楚,只是加上了我认为容易记住的部分,当想要实现某一个样式而忘记时,可以参考一下。

1.半透明边框

达到效果

利用rgba的透明化,使边框的颜色变成半透明,但是普通方法设置边框颜色并没有效果,此时可以利用css3的 background-clip属性 调整。这个属性的初始值是 border-box ,说明页面背景会被元素的border box(边框的外延框)裁剪掉,此时只需要设置为 padding-box,这样浏览器就会用内边距的外沿把背景裁剪掉。

css代码

body{background-color: #BAD4AA;
}
div{margin: 20px;width: 300px;height: 200px;background: white;border: 10px solid rgba(255,255,255,0.5);background-clip: padding-box;
}

2.多重边框

利用box-shadow来创建多重边框,它的好处是支持逗号分隔,可以创建任意数量的投影。要注意的一点是,投影是层层叠加的,所以外面一层一定要大于里面一层,而这个所谓的边框就是两者的差值。

css代码

div{margin: 70px auto;width: 300px;height: 200px;background: #eee;box-shadow: 0 0 0 10px red,0 0 0 15px pink,0 0 0 20px green;
}

页面

注意:利用投影产生的【边框】并不能触发事件

3.灵活的背景定位

这次用到的属性是css里的background-position:允许我们指定背景图片距离任意角的偏移量,只需要我们在偏移量前制定关键字。

这个属性不是什么新奇的属性,在我自己做项目的时候也用过,但是这里要记录一个有趣的知识点——就是这里的 left top等是什么意思。

每个元素身上都存在三个矩形框:borderbox(边框的外沿框)

paddingbox(内边距的外沿框)

contentbox(内容区的外沿框)

默认情况下,background-position是以paddingbox为准的,这样边框的颜色就不会遮住背景图片。而改变它则用到了

background-origin

用代码和效果展示更容易明白

当padding为10时

div{padding: 10px;width: 300px;height: 200px;background:  url(../image/1.png) no-repeat #5FB878;background-position: right bottom;background-origin: padding-box;
}

可以看出背景图片并没有实现内边距10px

更改后

div{padding: 10px;width: 300px;height: 200px;background:  url(../image/1.png) no-repeat #5FB878;background-position: right bottom;background-origin: content-box;//只更改了这个属性
}

增加了内边距。

4.边框内圆角

实现效果

也就是在一个方形框里有一个圆角框,一般情况下就是2个div就可以实现,这里不贴代码了。

接下来利用outline和box-shadow实现该样式。

首先可以想到outli用于在一个div外面进行描边增加边框,那我们试试,在一个已经是圆角的div里增加outli属性

效果如下

这时候发现由于边框并不按照圆角描边,就好产生空隙,那如果用box-shadow来填补这些空白,不就实现了想要的样式了吗

注意:该方法实现的条件有2个,1.是描边outline不按照圆角走,2.盒阴影box-shashow按照圆角走(我这里没有证明)。有可能随着w3c的规则更新,这2个条件会发生改变,那么该方法就不适用了

贴上代码

div{margin: 0 auto;width: 60%;background: #B3D1C1;border-radius:.8em;padding: 1em;box-shadow: 0 0 0 5px #A79496;outline: .6em solid #A79496;
}

效果图

5.条纹背景

利用背景颜色渐变的属性实现条纹背景

div{margin: 30px auto;width: 60%;height: 200px;background: linear-gradient(#B3D1C1,#A79496);
}

对于这种普通的渐变,只需要加上范围在颜色后面加上范围  background: linear-gradient(#B3D1C1 50%,#A79496 50%);

就变成了泾渭分明的2个色块,由于是代码产生的图像,可以像背景图像那样对待它。

贴一个w3c的图

三条纹

div{margin: 30px auto;width: 60%;height: 200px;background: linear-gradient(#B3D1C1 33.3%,#A79496 0,#A79496 66.6%,#eee 0);
}

垂直条纹

div{height: 400px;width: 200px;background: linear-gradient(to right, #B3D1C1 50%,#A79496 0);background-size: 45px;
}

《css揭秘》读书笔记(1)-背景与边框相关推荐

  1. css 揭秘-读书笔记

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

  2. CSS揭秘(二)背景与边框

    Chapter2 背景与边框 1. 半透明边框 基础:了解 RGBA & HSLA 颜色(色调 0~360.饱和度.亮度 (0%黑色~100%白色).透明度) 默认情况下,背景在边框的下层,容 ...

  3. css揭秘第二章:背景与边框,自己的学习笔记,如有错误请多指正

    1 半透明边框 width: 200px;height: 200px;background: white;border: 10px solid hsla(0, 0%, 100%, 0.5);backg ...

  4. CSS 揭秘-阅读笔记:(Ch5-Ch6)

    CSS 揭秘 阅读笔记:(Ch5-Ch6) CSS 揭秘 阅读笔记:(Ch5-Ch6) Ch5 字体排印 5.20 连字符断行 5.21 插入换行 5.22 文本行的斑马条纹 5.23 调整tab 的 ...

  5. 《CSS揭秘》笔记(一)

    前言 我们在现代 CSS 中所面临的挑战已经不在于如何绕过这些转瞬即逝的浏览器 bug.如今的挑战是,在保证 DRY ① .可维护.灵活性.轻量级并且尽可能符合标准的前提下,把我们手中的这些CSS特性 ...

  6. CSS揭秘:5.条纹背景(上)

    文章目录 条纹背景 CSS线性渐变 css线性渐变小结 background-size 水平条纹 水平 First Try 水平 Second Try 水平 Third Try 水平 Forth Tr ...

  7. CSS进阶(一)背景与边框

    CSS进阶(一)背景与边框 文章目录 CSS进阶(一)背景与边框 一.浏览器前缀 二.CSS编码技巧 1.尽量减少代码重复(可复用性) (1)当某些值相互依赖时,应该把他们的相互关系用代码表示出来 ( ...

  8. Spring揭秘 读书笔记 三 bean的scope与FactoryBean

    本书可作为王富强所著<<Spring揭秘>>一书的读书笔记  第四章 BeanFactory的xml之旅 bean的scope scope有时被翻译为"作用域&quo ...

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

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

  10. 《精彩绝伦的CSS》读书笔记(三)

    4.1 轮廓(outline)不参与布局,边框(border)参与布局 4.2 许多初学者(包括我)不了解的:margin:0 auto指的是上下外边距为0,相对父元素水平居中 4.6 相邻清除 cl ...

最新文章

  1. C++/C++11中std::stack的使用
  2. ICLR2021 | 清华大学黄高团队:显存不够?不妨抛弃端到端训练
  3. 淘宝开源的代码质量检测工具!
  4. hdu 5511 Minimum Cut-Cut——分类讨论思想+线段树合并
  5. php 正则 菜鸟,PHP正则表达式基础入门
  6. Kotlin by属性委托
  7. 10.15 wget:命令行下载工具
  8. function “printf“ declared implicitly
  9. java 扑克牌排序_java 怎么写compareto方法实现扑克牌排序
  10. Angular应用动态创建style标签页的场景
  11. mysql版本 hibernate_Mysql 不同版本 说明
  12. java数据库编程——执行查询操作(一)
  13. UIImage 压缩
  14. LeetCode 657. 机器人能否返回原点
  15. 使用StarUML生成live555类图
  16. java 定时器qz xm配置_java_Java的作业调度类库Quartz基本使用指南,一、常用接口: 1、Job接口: - phpStudy...
  17. 操作系统:读者-写者问题 (C语言 winapi)
  18. flash spi w25q128 w25q64 w25q32 w25q16 verilog fpga程序代码
  19. journalctl日志清空方法
  20. wingdings字体符号在哪_wingdings2字体

热门文章

  1. Ubuntu 重置用户密码
  2. Excel竟然能够按照单元格的指定颜色顺序排序
  3. 浅析芝麻信用分征信体系
  4. oracle查询某个时间段的数据
  5. 利用SPSS进行多重线性回归分析-基础篇
  6. 码农、程序员、工程师这三者之间有什么区别?
  7. 带本科生做毕设是什么样的体验,看看学生是怎么评价我的
  8. Excel如何用IF函数进行数据筛选
  9. 3月9日火箭vs黄蜂
  10. 自动化测试的7个步骤