博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法
阅读量:6912 次
发布时间:2019-06-27

本文共 2035 字,大约阅读时间需要 6 分钟。

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

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

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

所有题目汇总在我的  。

 

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

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

1
<
div
></
div
>

定义如下通用CSS

1
2
3
4
5
6
div{
    
position
:
relative
;
    
width
:
200px
;
    
height
:
60px
;
    
background
:
#ddd
;
}

 

法一:border

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

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

 

法二:使用伪元素

一个标签,算上 before 与 after 伪元素,其实算是有三个标签,这也是很多单标签作图的基础,本题中,使用伪元素可以轻易完成。

1
2
3
4
5
6
7
8
9
div::after{
    
content
:
""
;
    
width
:
5px
;
    
height
:
60px
;
    
position
:
absolute
;
    
top
:
0
;
    
left
:
0
;
    
background
:deeppink;
}

 

法三:外 box-shadow

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

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

 

法四:内 box-shadow

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

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

 

法五:drop-shadow

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

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

 

法六:渐变 linearGradient

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

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

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

 

法七:轮廓 outline

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

1
2
3
4
5
6
7
8
9
10
11
12
13
div{
    
height
:
50px
;
    
outline
:
5px 
solid 
deeppink;
}
div::after{
    
position
:
absolute
;
    
content
:
""
;
    
top
:
-5px
;
    
bottom
:
-5px
;
    
right
:
-5px
;
    
left
:
0
;
    
background
:
#ddd
;
}

 

法八、滚动条

这个方法由  提供,通过改变滚动条样式实现:

1
2
3
4
5
6
7
8
9
div{
    
width
:
205px
;
    
background
:deeppink;
    
overflow-y:
scroll
;
}
div::-webkit-scrollbar{
    
width
200px
;
    
background-color
:
#ddd
;
}

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

  

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

 

所有题目汇总在我的  ,发到博客希望得到更多的交流。

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

本文转自ChokCoco博客园博客,原文链接:http://www.cnblogs.com/coco1s/p/5893921.html

你可能感兴趣的文章
LeetCode(5) : Longest Palindromic Substring
查看>>
mysql 配置详解
查看>>
cell自适应网络图片大小
查看>>
decode()函数的简单使用
查看>>
第三次作业
查看>>
asf与vga视频为何无法同步播放?我来给你解释!
查看>>
H5----初识canvas
查看>>
Oracle PL/SQL学习之基础篇(1)
查看>>
深度学习500问,我觉得很不错
查看>>
关于nodejs的线程模型可以看这篇文章
查看>>
reactjs弹幕视频播放
查看>>
hdu 1106 排序
查看>>
1D1D动态规划优化
查看>>
洛谷 P2717 寒假作业
查看>>
xampp的安装和配置与HBuilder的配置--博客园老牛大讲堂
查看>>
OpenStack 多节点纳管 vCenter 5.5
查看>>
kafka快速入门
查看>>
1L - ASCII码排序
查看>>
jquery中的append和appendTo用法
查看>>
1172: 零起点学算法79——统计单词个数
查看>>