-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
谈谈一些有趣的CSS题目(1)-- 左边框的多种实现方式 #51
Comments
轮廓 outline的方法尝试后行不通 应该是需要两个div嵌套吧 |
@nonbeingLi 嗯。这里需要一个伪元素帮助遮挡一下~ |
伪元素 :first-letter 加上 特殊字符 ▎ 也可以实现 |
div加上position:relative就行了 |
开个脑洞,:p {
display: list-item;
list-style: square inside;
width: 200px;
height: 40px;
padding-left: 5px;
line-height: 0;
font-size: 9999%;
overflow: hidden;
background: deeppink;
color: #ddd;
} |
@arzyu 有丶东西~ |
厉害了。 |
太强了 |
太强了! |
codepen示例里面伪元素实现类名里的“pesudo”拼错了吧,是“pseudo” |
|
aka螃蟹来了 |
这是来自QQ邮箱的假期自动回复邮件。
您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
真强。牛,第一次知道可以这么做, |
最后一个是静态的吧 |
顶瓜瓜 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
开本
issues
,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节。解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧。
不断更新,不断更新,不断更新,重要的事情说三遍。
1、下面这个图形,只使用一个标签,可以有多少种实现方式:
其实就是考察,CSS 有多少种生成直线的方式,不管实用不实用,除去使用图片的方法,我们罗列一下。
假设我们的单标签是一个
div
:定义如下通用
CSS
:法一:border
这个应该是最最最容易想到的了
法二:使用伪元素
一个标签,算上
before
与after
伪元素,其实算是有三个标签,这也是很多单标签作图的基础,本题中,使用伪元素可以轻易完成。法三:外 box-shadow
盒阴影
box-shadow
大部分人都只是用了生成阴影,其实阴影可以有多重阴影,阴影不可以不虚化,这就需要去了解一下box-shaodw
的每一个参数具体作用。使用box-shaodw
解题:法四:内 box-shadow
盒阴影还有一个参数
inset
,用于设置内阴影,也可以完成:法五:drop-shadow
drop-shadow
是 CSS3 新增滤镜filter
中的其中一个滤镜,也可以生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个。法六:渐变 linearGradient
灵活使用 CSS3 的渐变可以完成大量想不到的图形,CSS3 的渐变分为线性渐变和径向渐变,本题使用线性渐变,可以轻易解题:
法七:轮廓 outline
这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。这个方法算是下下之选。
法八: 滚动条
这个方法由 小火柴的蓝色理想 提供,通过改变滚动条样式实现:
抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。
法九:使用下划线实现
这种方法在参加第五届 CSS 大会听到张鑫旭老师和袁川老师的分享后想到的。
下划线也是 CSS 中能够产生直线的一种方法,那么是否能够利用它来生成边框呢。
我们使用元素的伪类使用下划线,将伪类的内容设置为
____
,就可以实现内容与下划线重叠,再设置 文字颜色,下划线的颜色也将随之改变,然后是一些旋转位移:法十:使用
::first-letter
伪元素与
::before
、::after
伪元素类似,我们还可以使用::first-letter
伪元素。当然这个要求单个标签内存在内容。然后利用定位即可。法十一:使用
list-style
实现这个属于非常非常脑洞大开的想法。
我们知道,可以通过
list-style
设置列表的装饰序号,并且可以通过font-size
和color
控制list-style-type
的大小和颜色。那么脑洞大开一下,无限放大这个list-style-type
,再给容器设置一个padding-left
即可。单个正常的
list-style-type
:接着我们去掉文本,就可以得到一个单独的正方形
list-item
。再设置padding-left: 5px
,再无限放大这个小小的list-item
:示意图如下:
最后,加上
overflow: hidden
即可:上述就是想到的 11 种方法,也欢迎大家让自己的思维天马行空一下,想想看还有没有一些有意思的解法。
上述 11 种每种实现可以戳这里看看:
Codepen Demo - 单标签左边竖条的实现方式
The text was updated successfully, but these errors were encountered: