最近一直在研究CSS,因为发现实践中大部分时间都在写CSS,且自己感觉写的很烂,虽然以前看的很多,但却很少有去实践过,更别提研究了,现在发现根本就不是你懂你就会,很多都是你用着用着才真的会了的,于是现在打算花一段时间研究CSS,并把它记录下来,以免忘了,以后在项目中需要的时候也方便查找,之前用的编辑器写的文章太乱了,现在换成markdown了,感觉好多了。

注意:本篇文章不会过多的介绍基础知识,因为没有必要,网上有很多基础教程完全可以搜索的到,这篇文章主要是对CSS的研究,通过它可以提高你的编码技术水平,如果其中有不懂的完全可以搜索。

currentColor编码实践,currentColor它会继承当前文字颜色

这个dome演示的情况是,color颜色和边框颜色是一样的,hover上去也是一样。原本我们可能会写color:red;border-color:red;但如果使用currenColor会更简单。

代码:

  1. <style>
  2. #box{
  3. width:30vw;
  4. height:30vh;
  5. line-height:30vh;
  6. margin:10vh auto;
  7. color:#333;
  8. border:1px solid currentColor;
  9. text-align:center;
  10. }
  11. #box:hover{
  12. color:red;
  13. }
  14. </style>
  15. <div id="box">追梦子</div>

从中我们可以发现当color颜色变了currentColor颜色也会相应的改变。

::before、::after实践

我相信网页上有很多这种效果吧,其实用::before和::after可以轻松解决这个问题。

代码:

  1. <style>
  2. #box{
  3. text-align:center;
  4. position:relative;
  5. }
  6. #box::before{
  7. content:'';
  8. position:absolute;
  9. left:0;
  10. top:50%;
  11. width:100%;
  12. height:1px;
  13. background-color:#ccc;
  14. z-index:-1;
  15. }
  16. #box::after{
  17. content:'测试';
  18. background-color:#fff;
  19. padding:0 5px;
  20. }
  21. </style>
  22. <div id="box"></div>

注意这里的::before有个z-index:-1不然线会盖住文字,实现的原来就是,通过::before实现一个宽度100%高1px的横线,然后将文字把这个线盖住就好了,还有一个需要注意的就是虽然写z-index了,但还是看不出来,所以给文字加个背景颜色和body的颜色一样就好了。另外就是我之所以还有::after写文字是有原因的,如果直接把文字写在div里面那就麻烦了,因为写在里面的话,因为div宽度就是100%如果给个背景颜色的话就把线给盖住了。

那如果是垂直方向的呢?

代码:

  1. <style>
  2. body,div{
  3. margin:0;
  4. padding:0;
  5. }
  6. #box{
  7. position:relative;
  8. margin-left:100px;
  9. }
  10. #box::before{
  11. content:'';
  12. position:absolute;
  13. left:15px;
  14. top:0px;
  15. width:1px;
  16. height:100vh;
  17. background-color:#ccc;
  18. }
  19. #box::after{
  20. content:'测试';
  21. background-color:#fff;
  22. position:absolute;
  23. top:50vh;
  24. left:0;
  25. }
  26. </style>
  27. <div id="box"></div>

这里用了vh单位,vh可以动态获取屏幕高度,1vh等于1%的屏幕高度。

还有这种情况。



代码:

  1. <style>
  2. #box{
  3. position:relative;
  4. }
  5. #box::before{
  6. content:'';
  7. position:absolute;
  8. left:0;
  9. top:0;
  10. width:10%;
  11. height:1px;
  12. background-color:red;
  13. }
  14. #box::after{
  15. content:'';
  16. position:absolute;
  17. left:0;
  18. top:0;
  19. width:100%;
  20. height:1px;
  21. background-color:#dedede;
  22. z-index:-1;
  23. }
  24. </style>
  25. <div id="box"></div>
border或box-shadow实现模态框

之前也许我们会用来个元素来实现模态框,但现在完全没有必要。



因为border不能使用百分比所有使用一个超大的值就好了。噢,可以使用vw单位,其实有些很简单的东西可以解决很多看似复杂的事,只是我们没有去思考罢了。

  1. <style>
  2. #box{
  3. position:fixed;
  4. left:50%;
  5. top:50%;
  6. width:200px;
  7. height:200px;
  8. transform:translate(-50%,-50%);
  9. border:10000px solid rgba(0,0,0,0.3);
  10. }
  11. </style>
  12. <div id="box">追梦子前端博客</div>
  13. <p>从前有座山...</p>

在来一个box-shadow的实现

  1. <style>
  2. #box{
  3. position:fixed;
  4. left:50%;
  5. top:50%;
  6. width:200px;
  7. height:200px;
  8. transform:translate(-50%,-50%);
  9. box-shadow:0 0 0 100vw rgba(0,0,0,0.3);
  10. }
  11. </style>
  12. <div id="box">追梦子前端博客</div>
  13. <p>从前有座山...</p>

效果一样就不截图了。

别和我说兼容性,学习那有那么多事,一件事,学!

利用box-shadow制作汉堡菜单

  1. <style>
  2. #box{
  3. width:100px;
  4. box-shadow:0px 0px 0px 3px #000,0px 12px 0px 3px red,0
  5. px 25px 0px 3px #000;
  6. }
  7. </style>
  8. <div id="box"></div>

少一个元素算一个元素。

持续更新中...如果你有好的想法,能够分享一下那就更好了。

CSS技能汇总,研究及实践的更多相关文章

  1. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  2. CSS 技巧汇总

    CSS 选择符优先级 !important 声明>内联样式(style)>id 选择符(#id)>类选择符(.class)=伪类选择符(:hover )=属性选择符([attr] ) ...

  3. 转:【总结】浏览器CSS Hacks汇总,浏览器兼容方式CSS Hacks

    [总结]浏览器CSS Hacks汇总   浏览器兼容可以说是前端开发所要面对的第一个挑战,目前我的电脑上已经安装了6种浏览器(基于IE内核的不算,如Maxthon等). CSS hacks利用浏览器的 ...

  4. CSS hack 汇总

    1, IE条件注释法,微软官方推荐的hack方式. <!]> IE6以及IE6以上版本可识别 <![endif]--> <!]> 仅IE7可识别 <![end ...

  5. CSS 高级技巧汇总

    在我们平时写代码的时候没有没有掌握一些CSS技巧呢? 今天给大家分享一个<CSS 高级技巧汇总让你的代码简洁高效>.大家务必掌握这些小技巧,会让你非常高效率的写出网页的. ◆使用 :not ...

  6. css优先级汇总

    原文:css优先级汇总 我所理解的css优先级:当两个或者多个样式作用于同一个元素时,就会出现css优先级的问题. 多重样式优先级:当内联样式.内部样式和外部样式作用于同一个元素时,属于多重样式的范畴 ...

  7. 前端技能汇总 Frontend Knowledge Structure

    Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有 ...

  8. css盒模型研究

    css的盒模型一直是一个重点和难点,最近由后端的学习转到前端,觉得有必要深入研究一下css的盒模型. 1.万物皆盒子 我们必须要有一个理念,在html的世界里,万物皆盒子,那就是任何一个html元素都 ...

  9. 全端project师必备技能汇总

    首先,看一张前端知识结构图:  (原文: ithomer) 图片的形式具有诸多的不便.缺失源图的我们.无法为此图贡献些什么,随着时间的迁移,也许有些技术点会发生改变.所以有了这个GitHub项目.我们 ...

随机推荐

  1. Sublime+Golang Plugin

    很喜欢在Sublime开发Golang程序,主要是要一个Sublime Golang Plugin, 可以给代码autocomplement.相当的棒! 1.安装Sublime https://www ...

  2. API测试-Super Test

    框架选择 Super Test:基本的HTTP请求,返回判断 Chai:对返回的结果进行判断 grunt:集成jenkins grunt-mocha-test:grunt任务 Jenkins环境配制 ...

  3. JBOSS内存参数详解

    JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=25 ...

  4. ubuntu安装erlang

    照着园子里一篇博文安装erlang,各种错调不出来.最后发现官网有解决方案: https://www.erlang-solutions.com/downloads/download-erlang-ot ...

  5. asp.net中gridview的checkbox使用总结

    1.在gridview中的<column>中加入 <asp:TemplateField HeaderText="选择"> <ItemTemplate& ...

  6. 《利用Python进行数据分析》第123章学习笔记

    引言 1 列表推导式 records = [json.loads(line) for line in open(path)] 这是一种在一组字符串(或一组别的对象)上执行一条相同操作(如json.lo ...

  7. jdbc autoReconnect=true 参数设置导致 slow log 爆表。

    1.过程 同事按照文档上配置了下面的jdbc url: jdbc:mysql://ip:port/db?autoReconnect=true&useUnicode=true&chara ...

  8. [ASE]项目介绍及项目跟进——TANK BATTLE·INFINITE

    童年的记忆,大概是每周末和小伙伴们围坐在电视机前,在20来寸的电视机屏幕里守卫着这个至今都不知道是什么的白色大鸟. 当年被打爆的坦克数量估计也能绕地球个三两圈了吧. 十几年过去了,游戏从2D-3D,画 ...

  9. SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?

    SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好? 今天遇到某人在我以前写的一篇文章里问到 如果统计信息没来得及更新的话,那岂不是统计出来的数据时错误的 ...

  10. Quartz.net2.2初体验

    简介:Quartz.net是一个开源的作用调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作.相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气 ...