迈入前端行业已经8个多月了,从之前懵懵懂懂到现在的能根据设计图迅速成型页面,自我感觉良好。最近看到张大牛的一篇博客《说说CSS学习中的瓶颈》,突然意识到,自己不就处在快速学习和成长后的一个瓶颈期吗?每天努力工作,也去花时间学习基础知识,只是每次运用的似乎更多的是经验的积累:熟悉各个CSS属性,基本盒模型,兼容性问题如何修复熟悉等。然而,CSS的属性就那么多,如果只是了解每个CSS属性名称、属性值上来看,肯定会有一天达到饱和的。觉得似乎没有什么新的东西可学了,CSS的那点东西我都知道了,似乎工作就成了每天的重复。

(一)瓶颈在哪儿?

1.一些习惯性的CSS写法和通用方法会解决大部分工作中遇到的问题,这也慢慢会导致我们对一些底层的原理和模型的理解丧失,例如:通常我们在解决浏览器差异性的默认值时,会直接写上*{margin:0,padding:0},这样就万事大吉了,可以解决大部分浏览器默认值差异性问题,所以当遇到下面一个问题时,我竟无法回答。

dl, dt, dd三个标签浏览器默认margin值多少?是否有标签默认文字粗体?

2.CSS属性是由一个KEY+一个VALUE这种配对模式组成,例如: vertical-align: middle; 一个vertical-align属性可以对应多个值(像素,百分比,top),在一般的开发中可能遇到最多的是middle和%以及数值的模式,其他的属性值有想过怎么用以及在哪种情况下会使用呢?比如下面这个问题:

line-height:150%与line-height:1.5的真正区别是什么?

3.对知识有所了解,但没有全面的了解,有时会遇到这样的情况,例如vertical-align:middle可以对元素进行居中对齐,但是我发现当img标签使用该属性时表现正常,而P便签,span标签未均表现出任何效果,这是为什么呢?

(二)如何突破

      发现了问题就要解决问题,我觉得问题的根本还是思维的局限,没有很深入的研究,就没有实质性的提高。那如何才能有一个质的飞跃呢?

1.掌握细节

有时感觉自己遇到一些莫明其妙的问题,其实那就是一些小细节没有引起重视,知其然不知其所以然,才会遇到一些意想不到的情况,加强对CSS细节的了解,有助于更好地驾驭CSS, 而不是被CSS调试,被浏览器劫持。

2.向深度发展

这段时间本来是在学习CSS3,学的越多发现遇到的问题也越多,广度的扩展是需要深度的支撑的,我觉得是时候对CSS2.0进行一次透彻的领悟了,自己需要加强对模型机制以及原理进行深入的理解,整理与分享有深度的文章。

在学的过程中都会经历过几个踏步不前的状态,每提高到了一个小阶段会觉得没有什么学的,这种情况是正常的.是因为学习的思路受限,但在这个时期过了之后就会发现有新的东西需要学习,然后又会有一个新的上升阶段。

     (三)问题解答

既然提出了3个小问题,也一一进行解答吧。

1.dl与dt默认margin为0,dd默认margin为40,没有默认文字粗体。

2. line-height:150%与line-height:1.5的真正区别在于继承,无单位的会继承后再计算子代的line-height,值是动态的,有单位的会算出来然后继承,值是固定的.

3.vertical-align在这种情况下有效:inline-block元素。除了手动设置display:inline-block;还有例如图片,按钮,单复选框,单行/多行文本框等HTML控件(既可以与inline水平元素混排,又能设置高宽属性的元素)只有这些元素默认情况下会对vertical-align属性起作用。

慢下来,重新整理思路,跨过瓶颈,才能进一步海阔天空。

CSS的一些思考(一)的更多相关文章

  1. 关于CSS reset的思考

    关于CSS reset的思考 在现在的网站设计中使用reset.css用重置整个站点的标签的CSS属性的做法很常见,但有时候我们已经为了reset而reset,我们经常看到这样的reset代码 div ...

  2. 关于css的新思考

    因为被派去协助别的组,有机会写了一下react,发现ICE做的那一个套件用来搭建后台系统真的太给力了(插一句必入table组件其实是可以把删除添加座位基础方法加进去的).因为看了demo的代码以及对于 ...

  3. 常见标签的默认属性值及相互作用——关于CSS reset的思考

    在现在的网站设计中使用reset.css用重置整个站点的标签的CSS属性的做法很常见,但有时候我们已经为了reset而reset,我们经常看到这样的reset代码 div{ padding:0px; ...

  4. CSS组件化思考

    为什么组件化? 分层设计,代码复用,减少冗余: 维护方便,弹性好: 如何组件化? 目前代码分成三级: 第一级粒度最细,是基础,主要包含字体配置,颜色配置,UI框架(比如MUI或者pure.css): ...

  5. CSS布局模型思考

    flow模型:默认布局模型,元素从左向右.从上到下依次排列,块状元素独占一行.Position属性对应值static. float模型:主要效果是让本来独占一行的块状元素变成内联-块状元素,并到一排显 ...

  6. 常用CSS优化总结——网络性能与语法性能建议

    在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但突然问我,很难把自己知道的都说出来.页面优化明显不是一两句能够说完的,这两天总结了一下 ...

  7. 《css3实战》读书笔记 第一章 基于CSS需求而编写的HTML.

    笔记说明 <CSS3实战手册第3版(影印版)>可以消除Web设计工作的痛苦,并且带给你:HTML--重新入门.如果你是HTML新手,你会学到如何以CSS友好的方式进行基本页面构造.若你是H ...

  8. (转)常用CSS优化总结——网络性能与语法性能建议

    原文地址:http://www.cnblogs.com/dolphinX/p/3508657.html 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时 ...

  9. 《CSS 揭秘》作者Lea Verou:我喜欢分享开源的行业文化

    本文仅用于学习和交流,不用于商业目的.非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/art... 访谈嘉宾: Lea VerouW3C CSS ...

随机推荐

  1. php 中PHP_EOL使用

    一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的.本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r. ...

  2. PHP 函数dirname()使用实例

    通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网 ...

  3. QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)

    前两天入手了一块2.8’的tft液晶显示屏,于是和树莓派连了一发,成功将命令行显示在了这块小的可怜的屏幕上之后,觉得这屏幕就显示个黑白内容太浪费了,于是考虑开发一个”脸”(图形用户界面,GUI).首先 ...

  4. IEqualityComparer<T>接口

    IEqualityComparer<T>接口的对象的主要作用在于自定义判断两个对象是否相等. 其中最常用的方法: bool Equals(T x, T y); 实现该方法用于比较两个对象是 ...

  5. 文本编辑BOM标记(Byte Order Mark)

    微软的自带记事本程序notepad.exe会给UTF-8编码的文件头加入三个隐藏的字节(即BOM).这是一种很愚蠢的做法.就是为了让编辑器不去猜测文件本身是ASCII码还是UTF-8. 什么是BOM ...

  6. iOS 9之Advanced Touch Input(高级触摸输入)

    金田 今天要讲的主题是iOS 9高级触摸输入,更准确地讲,是在iOS9上如何减少触摸输入到屏幕显示的延迟程度,此次将分 低延迟渲染(iOS9 渲染性能优化)和 触摸点方案改进 两个方面来介绍. 低延迟 ...

  7. OpenCV的矩阵合并方法

    有的时候我们需要将几个矩阵按行或者按列进行合并成一个大矩阵,这在Matlab里面非常的简单,但在OpenCV里面并没有这样的方法,现在我在OpenCV的源码里面发现合并矩阵的方法,分享给大家. A = ...

  8. Linux中open函数以及退出进程的函数

    open函数的flag详解1 读写权限:O_RDONLY O_WRONLY O_RDWR (1)linux中文件有读写权限,我们在open打开文件时也可以附带一定的权限说明 (譬如O_RDONLY就表 ...

  9. Java 常调用的Webservice接口的方法

    WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用.WebService采用HTTP协议传输数据 ...

  10. JMeter简单性能测试(适合初学者)

    利用JMeter进行Web测试     JMeter介绍    脚本录制    运行JMeter进行测试    JMeter主要组件介绍    参数化设置    动态数据关联    使用命令行运行JM ...