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. 利用NSProxy解决NSTimer内存泄漏问题

    之前写过一篇利用RunTime解决由NSTimer导致的内存泄漏的文章,最近和同事讨论觉得这样写有点复杂,然后发现有NSProxy这么好用的根类,根类,根类,没错NSProxy与NSObject一样是 ...

  2. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记35 UITextField文本框

    本话来介绍UIKit框架中的组件UITextField. UItextField(文本框)和Label看起来看像,可是文本框是能够编辑的.在UI中使用文本框要注意.由于在模拟器上面输入文字是能够使用电 ...

  3. atitit.js 与c# java交互html5化的原理与总结.doc

    atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略 1 1.1. Js交互 1 1.2. 动态參数个数 1 1.3. 事件监听 2 2. ...

  4. 算法导论————KMP

    [例题传送门:caioj1177] KMP模版:子串是否出现 [题意]有两个字符串SA和SB,SA是母串,SB是子串,问子串SB是否在母串SA中出现过.如果出现过输出第一次出现的起始位置和结束位置,否 ...

  5. CSS 文本字体颜色设置方法(CSS color)

    CSS 文本字体颜色设置方法(CSS color) 一.认识CSS 颜色(CSS color) 这里要介绍的是网页设置颜色包含有哪些:网页颜色规定规范. 1.常用颜色地方包含:字体颜色.超链接颜色.网 ...

  6. 如何保证对象线程内唯一:数据槽(CallContext)

    CallContext 是类似于方法调用的线程本地存储区的专用集合对象,并提供对每个逻辑执行线程都唯一的数据槽.数据槽不在其他逻辑线程上的调用上下文之间共享.当 CallContext 沿执行代码路径 ...

  7. POJ 3184 DP+剪枝

    思路: 先找到每i头奶牛能在的位置 (一段区间) 记为L[i]和R[i] f[j]表示在位置j取到的最小值 每回在范围内更新一哈 //By SiriusRen #include <cstdio& ...

  8. Debian9.5 配置x11vnc远程桌面

    x11vnc是一个VNC服务器,它允许用户远程查看并用任何VNC查看器与真实的X显示器(即与物理监视器,键盘和鼠标相对应的显示器)进行交互.虽然它的原作者Karl Runge不再开发,但LibVNC和 ...

  9. python 服务端判断客户端异常断开

    在进行 python 套接字编程时,服务端程序要判断客户端是否异常断开[由于断电或者其他突发情况导致链接中断],可以通过以下几种方式判断: 1.如果通信协议中,设有心跳包,则可记录上次收到时间,将服务 ...

  10. struts2 结合extjs实现的一个登录实例

    一.先搭建好struts2,能够通过myeclipse高速搭建. 二.再导入extjs所需的库文件. 三.写一个实体类User package com.ext.model; public class ...