谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法

开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节。css

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

不断更新,不断更新,不断更新,重要的事情说三遍。git

全部题目汇总在个人 Github 。github

 

题目一、下面这个图形,只使用一个标签,能够有多少种实现方式:

假设咱们的单标签是一个 div:web

<div></div>

定义以下通用CSS学习

div{
    position:relative;
    width:200px;
    height:60px;
    background:#ddd;
}

 

法一:border

这个应该是最最最容易想到的了spa

div{
    border-left:5px solid deeppink;
}

 

法二:使用伪元素

一个标签,算上 before 与 after 伪元素,其实算是有三个标签,这也是不少单标签做图的基础,本题中,使用伪元素能够轻易完成。翻译

div::after{
    content:"";
    width:5px;
    height:60px;
    position:absolute;
    top:0;
    left:0;
    background:deeppink;
}

 

法三:外 box-shadow

盒阴影 box-shadow 大部分人都只是用了生成阴影,其实阴影能够有多重阴影、单侧阴影、阴影不能够不虚化,这就须要去了解一下 box-shaodw 的每个参数具体做用。使用 box-shaodw 解题code

div{
    box-shadow:-5px 0px 0 0 deeppink;
}

 

法四:内 box-shadow

盒阴影还有一个参数 inset ,用于设置内阴影,也能够完成:htm

div{
    box-shadow:inset 5px 0px 0 0 deeppink;
}

 

法五:drop-shadow

drop-shadow 是 CSS3 新增滤镜 filter 中的其中一个滤镜,也能够生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个。

div{
    filter:drop-shadow(-5px 0 0 deeppink);
}

 

法六:渐变 linearGradient

灵活使用 CSS3 的渐变能够完成大量想不到的图形,CSS3 的渐变简单而言分为线性渐变和径向渐变,本题使用线性渐变,能够轻易解题:

div{
    background-image:linear-gradient(90deg, deeppink 0px, deeppink 5px, transparent 5px);
}

其实,CSS3 渐变远不止线性渐变和径向渐变,细分下来,还有重复线性渐变(repeating-linear-gradient)和重复径向渐变(repeating-radial-gradient)以及已经被最新版本 Chrome 支持的圆锥渐变(conical-gradient),感兴趣能够自行去学习一下。

 

法七:轮廓 outline

这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的做用。这个方法算是下下之选。

div{
    height:50px;
    outline:5px solid deeppink;
}
div::after{
    position:absolute;
    content:"";
    top:-5px;
    bottom:-5px;
    right:-5px;
    left:0;
    background:#ddd;
}

 

法8、滚动条

这个方法由 小火柴的蓝色理想 提供,经过改变滚动条样式实现:

div{
    width:205px;
    background:deeppink;
    overflow-y:scroll;
}
div::-webkit-scrollbar{
    width: 200px;
    background-color:#ddd;
}

抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。

  

上述就是想到的 8 种方法,不排除有没想到的,但愿有其余的方法能够在评论中提出,具体 8 种实现能够戳这里看看:

codepen-单标签左边竖条的实现方式

 

全部题目汇总在个人 Github ,发到博客但愿获得更多的交流。

到此本文结束,若是还有什么疑问或者建议,能够多多交流,原创文章,文笔有限,才疏学浅,文中如有不正之处,万望告知。

相关文章
相关标签/搜索