css 左边阴影_CSS(一)-- 左边竖条的实现方法

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

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

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

所有题目汇总在我的 Github 。

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

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

定义如下通用CSS:

div{

position:relative;

width:200px;

height:60px;

background:#ddd;

}

法一:border

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

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 解题

div{

box-shadow:-5px 0px 0 0 deeppink;

}

法四:内 box-shadow

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

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 渐变远不止线性渐变和径向渐变,细分下来,还有重复线性渐变(). 它接受和普通线性渐变相同的属性值并且表现也一致,参考linear-gradient, but it automatically repeats the color stops infinitely in both directions, with their positions shifted by multiples of the length of a basic linear gradient (the difference between the last color stop's position and the first one's position)." href="https://developer.mozilla.org/zh-CN/docs/Web/CSS/repeating-linear-gradient">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;

}

法八、滚动条

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

div{

width:205px;

background:deeppink;

overflow-y:scroll;

}

div::-webkit-scrollbar{

width: 200px;

background-color:#ddd;

}

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

上述就是想到的 8 种方法,不排除有没想到的,希望有其他的方法可以在评论中提出,具体 8 种实现可以戳这里看看:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值