css样式表是为了容纳与html文档分离出来的样式属性而产生的,所以她理所当然的包含两个部分:1.样式的表示,使用{属性1:属性值;属性2:属性值;...},2.样式与标签的对应(如何找的对应标签),使用各种选择器。下面将这两部分分别进行分析。

一、选择器的分类和应用原则:

    关于选择器的总结,已经有很多,推荐博文:十分钟搞定css选择器,里面的总结已经非常全面,但怎样使用还是应该注意优先级(这是由于层叠引起的,因为css允许为一个标签多次设定样式,所以就要确定到底是哪个样式被最终使用)和应用原则,推荐另一篇文章:css选择器,优先级和匹配原理。还有一个需要体会的原则是渐进增强原则,这是因为各种浏览器对css的支持程度不同,为了满足不同用户都可以体验到满意的效果。

  二、样式又可以分为具体样式(指定每一部分自身应该显示的样式,如边框、背景等,其中最需理解的就是盒模型)和定位(指定元素的位置)。

    1、自身样式包括:背景、字体、文本、边框、链接、列表、表格、轮廓,多列,变换,过渡,动画,最后是"盒子"。

    前几个都较容易理解,具体内容在w3school手册中有介绍,需要记忆即可(注意背景图片百分比定位的具体操作)。

     而对盒子的理解首先应该是:它是一个装着珍贵物品的礼物盒,在最里面是物品(content),外面有一层柔软的布将它与坚硬外壳隔离(padding和border),这个盒子还需要和别的物件分开(margin)。所以这个盒子所占据的空间就是(margin-left+border-left+padding-left+content+padding-right+border-right+margin-right,上下计算同理),这样复杂的写只是想表明左右的大小不一定相等。

    有了上面的理解,现在来想一个实际的问题:如果在这个盒子里装了一个大于盒子的物品会出现什么情况呢?因为这个物品足够这珍贵,所以默认情况下它会溢出盒子的约束(ie中甚至可以将盒子“撑大”)。为了保持布局,你可以使用overflow属性对其进行限制(修剪多余部分hidden,出现滚动条scroll,自动识别auto),clip属性也可以用来对元素进行剪切,但有一定条件(该元素设置position为absolute)。

    在html中,可以说万物皆盒子。但盒子又可以分为两种:行内(框?盒)和行外(框?盒)。内外之分在于行,前者被局限于行之中,可以左右扩张,但只能通过设置行高line-height来上下扩展;而后者可以随心上下左右扩展。(图像属于行内元素)。display属性提供两者之间的转化方式,甚至将环内元素转化为特殊的行外元素,如列表和表格,详见手册。

    2、有了以上的盒子概念,就可以来进行定位了。记得以前看到过一些抽象画,就是一些方块的格子在一幅图片上进行排布,网页设计者就是在屏幕上进行这种艺术创作,但更准求精准的排列关系而已。其实浏览器默认就有一种排列方式—>由上到下,由左到右的排列这些行内和行外框(标准流)。为了使盒子可以以你的医院进行排列,css提供了定位元素,分为两种方式:position和float。

    float是浮动定位方式,先浮后动,浮是指想着屏幕冲着脸的方向上浮,然后向左或右移动,元素不占据标准流中位置,所以可以覆盖之后未浮动的元素。这是你可以消除它对下一个元素的影响(清除浮动),即使用clear属性

    position是一种“相对”定位方式,指的是它的定位依据某一特定元素来确定(有浮的特性),有relative(相对于标准流中的自己,原位置和框的性质保留),absolute(相对于包含它的最近定位元素,位置不留,一律变成块框),fixed(相对于浏览器视窗)

    还有四种定位,top,right,bottom,left,它们必须在设定position定位之后才能起作用。

新手前端笔记之--初识css的更多相关文章

  1. 新手前端笔记之--初识html标签

    接触前端(好大气的名字啊)已经一个多月了,看了很多视频和博客,有了一定的感性认识,但还是需要总结一下以便系统化所学习的知识,就从html标签开始吧.关于标签,谈论最多的就是简洁和语义化.简洁指html ...

  2. 新手前端笔记之--css盒子

    css盒子就是它的盒模型,所有css的布局都是以此作为基础的,很有必要来详细记录一下. 1.盒子的尺寸就是margin+padding+border+content的总和,这很好理解,但令人迷惑的可能 ...

  3. 前端笔记 (2.CSS)

    知识点借鉴于慕课网,菜鸟教程和w3shool CSS方面: CSS全称为“层叠样式表”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 使用CSS样式的一个好处是通过 ...

  4. 前端笔记二:CSS盒模型

    1.标准模型和IE模型 2.标准模型和IE模型的区别 标准模型的height和width只是content的: IE模型的height和width是包含padding和border的 3.CSS如何设 ...

  5. 前端笔记(关于css盒模型知识整理)

    我以前整理的文章可能也不是特别深入.所以现在开始尝试即使多花点时间收集整理,也不只发浅层知识,这样对技术的深入理解是很有帮助的. 废话不多说,我们现在开始. 说到css盒模型,这是大多面试基础中会经常 ...

  6. 2.前端笔记之css

    title: 1.前端笔记之CSS date: 2016-04-05 23:05:51 tags: 前端 categories: w3c --- 作者:刘耀 **出处:http://www.liuya ...

  7. 1.前端笔记之html

    title: 1.前端笔记之HTML date: 2016-04-04 23:21:52 tags: Python categories: Python --- 作者:刘耀 **出处:http://w ...

  8. 写给后端的前端笔记:浮动(float)布局

    写给后端的前端笔记:浮动(float)布局 这篇文章主要面向后端人员,对前端有深刻了解的各位不喜勿喷. 起因 前一阵子我一个后端的伙伴问我,"前端的左飘怎么做?",我立马就懵了,& ...

  9. 写给后端的前端笔记:定位(position)

    写给后端的前端笔记:定位(position) 既然都写了一篇浮动布局,干脆把定位(position)也写了,这样后端基本上能学会css布局了. 类别 我们所说的定位position主要有三类:固定定位 ...

随机推荐

  1. select & epoll

    同步.异步.堵塞和非堵塞差别 同步:发出一个功能调用时.在没有得到结果之前,该调用就不返回 异步:当一个异步过程调用发出后.调用者不能立马得到结果.实际处理这个调用的部件在完毕后.通过状态.通知和回调 ...

  2. HDU44979 GCD and LCM (素因子分解+计数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意: 求有多少种(x,y,z)使得最小公倍数为l,最大公约数为g 分析: 我们将l,g进行素因 ...

  3. atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t

    atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t 1. 堵塞队列和非堵塞队列 1 2. java.util.Queue接口. 1 3. ConcurrentLin ...

  4. 2015上海网络赛 HDU 5475 An easy problem 线段树

    题意就不说了 思路:线段树,维护区间乘积.2操作就将要除的点更新为1. #include<iostream> #include<cstdio> #include<cstr ...

  5. 使用form-create动态生成vue组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 [github] | [说明文档] 示例 let rule = [ { type:'row', children:[ { type:' ...

  6. 今日SGU 5.23

    SGU 223 题意:给你n*n的矩形,放k个国王,每个国王不能放在别的国王的8连边上,问你有多少种方法 收获:状态DP,因为每行的放置只会影响下一行,然我们就枚举每行的状态和对应的下一行的状态,当两 ...

  7. IDEA 热启动,每次更改代码后不用重启服务

    1.ctrl+Shift+Alt+/,选择Registry 2.勾选 compiler.automake.allow.when.app.running(可能不按首字母排序,可以多找找) 3.Setti ...

  8. [Android实例] 高速静默更新,低流量耗费,让APP活跃起来!

    大家好.我是csdn的新人,给大家带来一个做了一个星期的SDK,能够实现将Android APP碎片化管理.自由更新,实时更新,低流量耗费的更新~~ Zag Whim Renewal A system ...

  9. PopupMenu-使用实例跟监听事件

    今天需要给一个控件添加弹出菜单功能.就顺便学习了下popupMenu的使用,记录下来. 它的使用其实也非常的简单,看如下代码 popupMenu = new PopupMenu(MainActivit ...

  10. C#运算符小例子

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...