解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS属性,赶紧去补习一下吧。

2、类似下面这个图形,只使用一个标签,可以有多少种实现方式:

假设我们的单标签为 p:

定义如下通用 CSS:p{

position:relative;

width: 180px;

height: 180px;

}

这一题主要考查的是盒子模型

background 在 Box Model 中,他是布满整个元素的盒子区域的,并不是从 background ,所以我们使用虚线边框(dashed)就可以看到背景色是从 border 内部开始的。

我们给 p 添加如下样式:p{

background:#9c27b0;

border:20px dashed #2196f3;

}

结果如下:

但有一点需要注意,padding 边缘的左上角起而到 border 的右下角边缘止。

background image 的绘制中有两个因素决定了绘图区域:background positioning area。属性决定了这个相对定位位置,默认为 padding-box。所以默认的背景图片绘制是从 padding box 的左上顶点开始的。

background painting area。background-clip属性决定了绘制区间,默认为 border-box。所以在The image is repeated in this direction as often as needed to cover the background painting area.

嗯,什么意思呢,你可以戳进这个 demo 看看,正常情况下的背景图填充如下:

当然,这个填充规则是可以通过 background-clip 改变的。background-clip 设置元素的背景(背景图片或颜色)是否延伸到边框下面。

语法:{

background-clip: border-box; // 背景延伸到边框外沿(但是在边框之下)

background-clip: padding-box; // 边框下面没有背景,即背景延伸到内边距外沿。

background-clip: content-box; // 背景裁剪到内容区 (content-box) 外沿。

}

继续说回本题,接下来,只需要将中间部分填充为白色即可,这个用伪元素可以轻松完成,所以,其中一个方法如下:p{

background:#9c27b0;

border:20px dashed #2196f3;

}

p::after{

content:"";

position:absolute;

top:0;

left:0;

bottom:0;

right:0;

background:#fff;

}

法二:

上面的方法,我们使用了 p 的背景色默认情况下从 border 开始填充,及伪元素设置白色背景色填充p 的中间的 padding-box 区域完成图形。

也可以反过来,使用伪元素背景色从 border-box 开始填充,使用 p 的背景色填充中间 padding-box区域。p{

background:#fff;

background-clip:padding-box;

border:20px dashed #cccc99;

}

p::before{

content:"";

position:absolute;

top:-20px;

left:-20px;

bottom:-20px;

right:-20px;

background:#996699;

z-index:-1;

}

上面 法二 除了用到了 background-clip 改变背景的填充区域,还用到了 z-index 触发元素生成了堆叠上下文(stacking context),改变了元素的层叠顺序(stacking levle),让伪元素背景色叠到了 p 背景色 之下,这两个概念下题会提及。

法....

本题主要是想讨论一下 CSS 的盒子模型 Box Model 与 背景 background 的关系,其实本题就是在于一个 dashed 边框,内部使用颜色填充即可,与上面第一题异曲同工,使用阴影、渐变都可以完成,感兴趣可以自己尝试一下其他解法。

html盒子边框内部线条,详解CSS从条纹边框的实现盒子模型的方法相关推荐

  1. html边框复合属性,详解CSS的border边框属性及其在CSS3中的新特性

    基础你可能很熟悉边的最基本用法. CSS Code复制内容到剪贴板 border:1pxsolidblack; 上面的代码将给元素应用1px的边.即简洁又简单:但我们也可以稍作修改. CSS Code ...

  2. html 边框重叠问题,详解css边距重叠的几种解决方案

    今天整理了一下用css防止边距重叠的几种方法 先假设一组dom结构 通常情况下,如果给子元素设置margin,就会产生这个属性对父元素也产生了同样的效果,然而 这其实不是我们想要的结果,我们只想对子元 ...

  3. 详解CSS的盒模型(box model) 及 CSS3新增盒模型计算方式box-sizing

    W3C规范 一般来说,页面中的每一个元素都会形成一个矩形盒子,渲染引擎根据给定的样式确定这个盒子的呈现.通俗的来说,页面的布局就是一个个盒子的排列和摆放.掌握了盒子呈现的本质,布局也就轻而易举. 在 ...

  4. float属性html,详解CSS样式中的float属性

    详解CSS样式中的float属性.float是 css 样式的定位属性.我们在印刷排版中,文本可以按照需要围绕图片.一般把这种方式称为"文本环绕".在网页设计中,应用了CSS的fl ...

  5. 详解css中的em单位

    文章目录 详解CSS中的em单位 解释 Examp-01 源码 Example-02 源码: 详解CSS中的em单位 css中的长度单位有很多,可谓五花八门,而下面本篇文章就来给大家介绍一下em单位. ...

  6. 详解CSS float属性

    转自:http://luopq.com/2015/11/08/CSS-float/ \详解CSS float属性 Posted on 2015-11-08   |   In CSS   |   5条评 ...

  7. Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

    编者按:HDFS和MapReduce是Hadoop的两大核心,除此之外Hbase.Hive这两个核心工具也随着Hadoop发展变得越来越重要.本文作者张震的博文<Thinking in BigD ...

  8. inline-block是html5,详解CSS display:inline-block的应用

    本文详细描述了display:inline-block的基础知识,产生的问题和解决方法以及其常见的应用场景,加深了对inline-block应用的进一步理解. 基础知识 display:inline- ...

  9. [转]Redis内部数据结构详解-sds

    本文是<Redis内部数据结构详解>系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds. 不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构.sds正是在Redis中被 ...

最新文章

  1. [LeetCode]Gray Code
  2. Python中数字以及算数运算符的相关使用
  3. SAP内存 和 ABAP内存 的简单介绍说明
  4. 图像分类简单介绍-转
  5. 年龄计算、工作表合并、高级筛选(三)
  6. dual mysql 获取序列_MySQL JDBC客户端反序列化漏洞
  7. 【转载】【程序员练级】提高英语阅读水平经验分享上篇
  8. table表格for循环绑定数据_.NET MVC 页面表格绘制
  9. [UE4]需要保存的数据
  10. 基于JAVA+Servlet+JSP+MYSQL的学生信息管理系统
  11. Fiddle改包场景01——拦截请求,修改请求,放行请求
  12. codeforces #309 div1 D
  13. 复变函数:傅里叶级数
  14. 数学建模层次分析法例题及答案_数学建模方法层次分析法实例.doc
  15. Result Maps collection does not contain value for错误提示
  16. 手机状态信息里的IP地址和通过浏览器ip.cn查到的IP地址区别
  17. 群体智能的发展现状:AI网络安全现状、新一代AI发展现状
  18. Windows 系统维护
  19. 【云云怪】深度学习之:股票价格预测
  20. 一起来做NES开发(1)

热门文章

  1. ssh框架怎么写ajax,SSH框架+Ajax(运用dwr框架)综合小实例[精校版本]
  2. q learning matlab,用Matlab实现简单的Q-learning算法(学习走出房间)
  3. 【蓝桥杯真题】幸运数字的解决方法
  4. python使用matplotlib可视化、自定义设置坐标轴的范围、自定义设置主坐标轴刻度和次坐标轴刻度(ticks)、自定义坐标轴刻度的显示样式、自定义坐标轴刻度数值的颜色以及小数点位数
  5. Qt之美(一):d指针/p指针详解
  6. Win11 下蓝牙设备突然消失,不能正常使用解决方法。
  7. java——如何获取当前时间到第二天凌晨(12点)的秒的差值(或者分钟的差值)
  8. 汉语音频文本对齐(Forced Alignment)-MFA
  9. UltraEdit v26(补丁工具)
  10. 推荐资源:9大PPT伴侣!