CSS技能汇总,研究及实践
最近一直在研究CSS,因为发现实践中大部分时间都在写CSS,且自己感觉写的很烂,虽然以前看的很多,但却很少有去实践过,更别提研究了,现在发现根本就不是你懂你就会,很多都是你用着用着才真的会了的,于是现在打算花一段时间研究CSS,并把它记录下来,以免忘了,以后在项目中需要的时候也方便查找,之前用的编辑器写的文章太乱了,现在换成markdown了,感觉好多了。
注意:本篇文章不会过多的介绍基础知识,因为没有必要,网上有很多基础教程完全可以搜索的到,这篇文章主要是对CSS的研究,通过它可以提高你的编码技术水平,如果其中有不懂的完全可以搜索。
currentColor
编码实践,currentColor
它会继承当前文字颜色
这个dome演示的情况是,color颜色和边框颜色是一样的,hover上去也是一样。原本我们可能会写color:red;border-color:red;
但如果使用currenColor会更简单。
代码:
<style>
#box{
width:30vw;
height:30vh;
line-height:30vh;
margin:10vh auto;
color:#333;
border:1px solid currentColor;
text-align:center;
}
#box:hover{
color:red;
}
</style>
<div id="box">追梦子</div>
从中我们可以发现当color颜色变了currentColor颜色也会相应的改变。
::before、::after
实践
我相信网页上有很多这种效果吧,其实用::before和::after可以轻松解决这个问题。
代码:
<style>
#box{
text-align:center;
position:relative;
}
#box::before{
content:'';
position:absolute;
left:0;
top:50%;
width:100%;
height:1px;
background-color:#ccc;
z-index:-1;
}
#box::after{
content:'测试';
background-color:#fff;
padding:0 5px;
}
</style>
<div id="box"></div>
注意这里的::before有个
z-index:-1
不然线会盖住文字,实现的原来就是,通过::before实现一个宽度100%高1px的横线,然后将文字把这个线盖住就好了,还有一个需要注意的就是虽然写z-index
了,但还是看不出来,所以给文字加个背景颜色和body的颜色一样就好了。另外就是我之所以还有::after写文字是有原因的,如果直接把文字写在div里面那就麻烦了,因为写在里面的话,因为div宽度就是100%如果给个背景颜色的话就把线给盖住了。
那如果是垂直方向的呢?
代码:
<style>
body,div{
margin:0;
padding:0;
}
#box{
position:relative;
margin-left:100px;
}
#box::before{
content:'';
position:absolute;
left:15px;
top:0px;
width:1px;
height:100vh;
background-color:#ccc;
}
#box::after{
content:'测试';
background-color:#fff;
position:absolute;
top:50vh;
left:0;
}
</style>
<div id="box"></div>
这里用了vh
单位,vh
可以动态获取屏幕高度,1vh
等于1%的屏幕高度。
还有这种情况。
代码:
<style>
#box{
position:relative;
}
#box::before{
content:'';
position:absolute;
left:0;
top:0;
width:10%;
height:1px;
background-color:red;
}
#box::after{
content:'';
position:absolute;
left:0;
top:0;
width:100%;
height:1px;
background-color:#dedede;
z-index:-1;
}
</style>
<div id="box"></div>
border或box-shadow实现模态框
之前也许我们会用来个元素来实现模态框,但现在完全没有必要。
因为border不能使用百分比所有使用一个超大的值就好了。噢,可以使用vw
单位,其实有些很简单的东西可以解决很多看似复杂的事,只是我们没有去思考罢了。
<style>
#box{
position:fixed;
left:50%;
top:50%;
width:200px;
height:200px;
transform:translate(-50%,-50%);
border:10000px solid rgba(0,0,0,0.3);
}
</style>
<div id="box">追梦子前端博客</div>
<p>从前有座山...</p>
在来一个box-shadow的实现
<style>
#box{
position:fixed;
left:50%;
top:50%;
width:200px;
height:200px;
transform:translate(-50%,-50%);
box-shadow:0 0 0 100vw rgba(0,0,0,0.3);
}
</style>
<div id="box">追梦子前端博客</div>
<p>从前有座山...</p>
效果一样就不截图了。
别和我说兼容性,学习那有那么多事,一件事,学!
利用box-shadow制作汉堡菜单
<style>
#box{
width:100px;
box-shadow:0px 0px 0px 3px #000,0px 12px 0px 3px red,0
px 25px 0px 3px #000;
}
</style>
<div id="box"></div>
少一个元素算一个元素。
持续更新中...如果你有好的想法,能够分享一下那就更好了。
CSS技能汇总,研究及实践的更多相关文章
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- CSS 技巧汇总
CSS 选择符优先级 !important 声明>内联样式(style)>id 选择符(#id)>类选择符(.class)=伪类选择符(:hover )=属性选择符([attr] ) ...
- 转:【总结】浏览器CSS Hacks汇总,浏览器兼容方式CSS Hacks
[总结]浏览器CSS Hacks汇总 浏览器兼容可以说是前端开发所要面对的第一个挑战,目前我的电脑上已经安装了6种浏览器(基于IE内核的不算,如Maxthon等). CSS hacks利用浏览器的 ...
- CSS hack 汇总
1, IE条件注释法,微软官方推荐的hack方式. <!]> IE6以及IE6以上版本可识别 <![endif]--> <!]> 仅IE7可识别 <![end ...
- CSS 高级技巧汇总
在我们平时写代码的时候没有没有掌握一些CSS技巧呢? 今天给大家分享一个<CSS 高级技巧汇总让你的代码简洁高效>.大家务必掌握这些小技巧,会让你非常高效率的写出网页的. ◆使用 :not ...
- css优先级汇总
原文:css优先级汇总 我所理解的css优先级:当两个或者多个样式作用于同一个元素时,就会出现css优先级的问题. 多重样式优先级:当内联样式.内部样式和外部样式作用于同一个元素时,属于多重样式的范畴 ...
- 前端技能汇总 Frontend Knowledge Structure
Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有 ...
- css盒模型研究
css的盒模型一直是一个重点和难点,最近由后端的学习转到前端,觉得有必要深入研究一下css的盒模型. 1.万物皆盒子 我们必须要有一个理念,在html的世界里,万物皆盒子,那就是任何一个html元素都 ...
- 全端project师必备技能汇总
首先,看一张前端知识结构图: (原文: ithomer) 图片的形式具有诸多的不便.缺失源图的我们.无法为此图贡献些什么,随着时间的迁移,也许有些技术点会发生改变.所以有了这个GitHub项目.我们 ...
随机推荐
- 积木大赛 noip2013提高组day2
这道题一开始想到处理中间是0的位置,但这样时间太慢了,后来想到一种类似二分的方法,就是把这一段的最小值找到,全部减去最小值,然后有0一出现,就又递归处理前一段,每次答案就加上这一段的最小值: AC代码 ...
- android TCP 客户端(仅接收数据)
配合log4net使用,用来接收调试信息.因此,此客户端只管通过TCP接收字符串数据,然后显示在界面上. 接收TCP数据 try { Socket s = new Socket("192.1 ...
- 每天记一些php函数,jQuery函数和linux命令(二)
简介:学习完了php和jQuery之后,对函数的记忆不到位,导致很多函数没记住,所以为了促进自己的记忆,每天花一点时间来写这个博客. 时间:2016-12-19 地点:太原 天气:晴 一.p ...
- HTML5 div+css导航菜单
HTML5 div+css导航菜单 视频 音乐 小说 故事 作品 阅读 联系
- dubbo分布式rpc框架用法
dubbo是阿里巴巴开源的分布式服务框架,致力于提供高性能和透明化的rpc远程服务调用方案,以及soa服务治理方案,如果没有分布式需求,是不需要dubbo的,分布式环境dubbo的使用架构官方给出了一 ...
- 初试TinyIoCContainer笔记
第一次看到TinyIoCContainer是在用NancyFx的时候,在Bootstrapper那里看到了她的影子. 那些叫Tiny的东西都挺有意思,IoC容器是我第一次遇到,于是找了些文章看了看,自 ...
- 【C语言学习】《C Primer Plus》第1章 概览
学习总结 1.C语言于1972年由贝尔实验室的Dennis Ritchie在与Ken Thompson一起设计UNIX操作系统的时候开发的.的的设计构想来源于Ken Thompson的B语言.Anyw ...
- 冲刺阶段 day11
项目进展:系部,专业,班级管理这三项没有学生,教师管理部分输入项目多,所以窗体搭建比较简单,代码也简单一些,进行的还算顺利,有了之前的编写经验,很多代码可以直接copy过来,越进行编写越顺利了,已经进 ...
- Windows Azure Service Bus Notification Hub推送通知
前言 随着Windows Azure 在中国的正式落地,相信越来越多的人会体验到Windows Azure带来的强大和便利.在上一篇文章中, 我们介绍了如何利用Windows Azure中的Servi ...
- Linux下Java开发环境搭建—CentOS下Mysql安装教程
本人学习Linux时使用的是CentOs5.5版本,在该环境中,Mysql的安装方法有很多种,下面我只讲我这次成功了的方法,作为一个记录,供大家参考,同时给自己做一个笔记. MySQL下载 1.进入网 ...