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

功勋卓越的 border 属性

border-width 不支持百分比值

border-style 类型

border-style 默认值是none;多出现在重置边框样式的时候,渲染性能最高的写法是:

div {

border: 1px solid;

border-bottom: 0 none;

}

border-style: dashed

虚线边框。虚线颜色区的宽高比以及颜色区和透明区的宽度比例在不同浏览器下是有差异的。例如,在 Chrome 和 Firefox 浏览器下,颜色区的宽高比是3:1,颜色区和透明区的宽度比例是1:1;而 IE 浏览器则是另外的数据,颜色区的宽高比是2:1,颜色区和透明区的宽度比例也是2:1

border-style: dotted

border-style: double

双线边框,顾名思义,即两根线且为实线。表现规则:双线宽度永远相等,中间间隔±1。

border-color 和 color

border-color 默认颜色是 color 色值。具体来讲,就是当没有指定 border-color 颜色值的时候,会使用当前元素的 color 计算值作为边框色。

具有类似特性的 CSS 属性还有 outline、box-shadow 和 text-shadow等。

border 与透明边框技巧

虽然 color: transparent 在 IE9 以上版本的浏览器才支持,但是 border-color: transparent 在IE7浏览器就开始支持了。

1.右下方 background 定位的技巧

在 CSS3 新世界还没到来的时候,background 定位有一个比较大的局限性,就是只能相对于左上角数值定位,不能相对右下角。这种特性有时候会给我们的工作带来一点儿麻烦。

假设现在有一个宽度不定的元素,我们需要在局里右边缘50像素的位置设置一个背景图片,此时 background 属性就遭遇尴尬了:由于宽度不固定,所以无法通过设定具体数值来实现我们想要的效果,因为 background 是相对左上角定位的,我们的需求是右侧定位。

要实现上面的需求,方法很多。其中一种方法就是使用透明边框,如下 CSS 代码:

.box {
border-right: 50px solid transparent;
background-position: 100% 50%;
}

此时,对 50px 的间距我们使用 transparent 边框表示。并且,默认 background 背景图片是相对于 padding box 定位的,也就是说,background-posiiton: 100% 的位置计算默认是不会把 border-width 计算在内的。

2.三角等图形绘制

即使在移动端,使用 CSS 的 border 属性绘制三角形等图形仍是性价比最高的方式。例如,一个朝下的等腰直角三角形,直接用:

div {
width:;
border: 10px solid;
border-color: #f30 transparent transaprent;
}

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

  1. How tomcat works 读书笔记十四 服务器组件和服务组件

    之前的项目还是有些问题的,例如 1 只能有一个连接器,只能处理http请求,无法添加另外一个连接器用来处理https. 2 对容器的关闭只能是粗暴的关闭Bootstrap. 服务器组件 org.apa ...

  2. Java 读书笔记 (十四) Java 方法

    finalize() 方法 finalize() 用来清除回收对象.  //为什么要回收内存?怎样写可以避免内存过多占用?什么时候需要手动回收内存? protected void finalize() ...

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

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

  4. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  5. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  6. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

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

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

  8. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  9. 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:/ ...

  10. Java多线程编程实战指南(核心篇)读书笔记(四)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76690961冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

随机推荐

  1. 2018-2019-1 20189210 《LInux内核原理与分析》第九周作业

    进程的切换和系统的一般执行过程 (1)进程调度的时机 1.schedule是一个内核函数,不是一个系统调用,进程的调度只发生在内核中,进程调度函数schedule()只能在内核中被调用,用户进程无法调 ...

  2. linux for循环 fork() 产生子进程

    #include <sys/types.h> #include <unistd.h> #include<stdio.h> int main() { for(int ...

  3. XAMPP 安装时 MySQL 无法启动,且提示端口占用。

    今天安装XAMPP时遇到了几个坑,忙活了一上午才搞定,写下来分享给同样遇坑的盆友们. MySQL 点击start 提示端口3306被占用,我改了端口号,又改了注册表,将注册表地址改为xampp中mys ...

  4. F#周报2019年第14期

    新闻 发布F# 4.6 SAFE Stack v1.0 发布fable编译器2.2,Fable.Core 3及其它 发布ML.NET 1.0 RC Saturn:增加路由诊断页面 Visual Stu ...

  5. Codeforces 785 - A/B/C/D/E - (Undone)

    链接:https://codeforces.com/contest/785 A - Anton and Polyhedrons #include<bits/stdc++.h> using ...

  6. 弄懂JDK、JRE和JVM到底是什么

    首先是JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK).在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bi ...

  7. 关于Java8:StreamAPI的一点记录

    关于 Stream ,Functional Interface 的一点记录 stream对于集合操作的便捷度提升: import java.util.ArrayList; import java.ut ...

  8. Autohotkey常用命令

    //输入密码#1::send test1234sleep 600send {enter}return //打开程序; win + t: open total cmd#t::IfWinNotExist ...

  9. 线性表->链式存储->双向链表

    文字描述 之前的链表(单链表.循环链表)的链式存储结构中只有一个指示直接后继的指针域.由此,从某个结点出发只能顺指针往后寻查其他结点.若要寻查结点的直接前驱,则需从表头指针出发.即单链表中,NextE ...

  10. 001-JUnit之断言assert

    一.简介以及pom JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活: 使用全新的断言语法:assertThat, ...