CSS心得

	最近对CSS的使用有一些小心得,在此写下来给大家分享分享 。最后附上选择器的实例代码。
------DanlV

CSS是什么

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

百度百科

CSS三种使用方式

1.style属性 如: <div style="width:300px">

2.style标签 如:

		#id .class html {
color: red;
}

3.link标签引入外部单独的css文件

TIPS:在实际的开发中,推荐使用第三种方式,能够很好的实现结构与样式分离。

CSS选择器

css分为基础选择器和综合选择器

基础选择器

  • html  标签选择器   如 p { .....}

    1.通过标签名当做选择器来使用

    2.无论标签藏的多深,都可以被选中

    3.选择的是所有的标签,而不是具体某个标签,通常情况下,通过标签选择器设置的是共性的问题
  • id选择器  #id名   如#div1 {....}

    1.id的名字是唯一的

    2.任何的标签都可以具有id属性(id是全局属性)。大小写敏感(#test 和 #TEST 是两个完全不同的id)
  • class选择器  .class名  如.class {...}

    1.class属性名可以重复使用

    2.任何的标签都可以具有class属性(class也是全局属性)

    3.class的值可以有多个 <h1 class="test logo h1"></h1>
  • 通配符 *   如 *{....}选择所有标签,能少用就少用,会拖慢网页的速度

命名法:给元素设置id(设置class也可以使用)的时候,可以采用驼峰命名法 :

1.小驼峰命名法,首单词不大写,后面的单词首字母都大写 如   testHeaderLogImage

2.大驼峰命名法,所有单词首字母都大写


综合选择器

  • 后代选择器 div  p   选中的是div  里面的p标签,如div p {...}
  • 交集选择器  div.d1
  • 子元素选择器  div>p ,这是css3新出现的。
  • 并集选择器 div,p使用‘,’隔离
  • 序列选择器:first-child  :last-child
  • 相邻兄弟选择器  div  + p,选取紧挨着的后面的兄弟节点
  • 普通兄弟选择器 div  `  p(使用反引号),选取div元素后面出现的所有p兄弟节点

继承和层叠

继承和层叠是css极为重要的内容。

继承

父元素拥有了某个css属性,子元素在不需要任何条件的情况下都会拥有父元素的属性。

子元素并不能够全部继承父元素的css,可以继承的css属性具有以下特点:

color   text-   line-    font-   都是跟文字属性相关 这些关于文字样式的,都能够继承; 所有关于盒子的、定位的、布局的属性都不能继承。

层叠

层叠是CSS处理冲突的一种解决方案。需要通过计算权重来解决层叠的问题。

解决层叠问题通过权重由选择器中id  class  html  的出现次数来判断权重,如:  

		#b1 .h2 p {
color:red;
} div div #b3 p {
color: blue;
} div.h1 div.h2 dov.h3 p {
color: yellow;
}

一号:第一个选择器id class html出现的次数分别为1   1   1

二号:第一个选择器id class html出现的次数分别为1   0   3

三号:第一个选择器id class html出现的次数分别为0   3   4

三号id选择器个数为0,被淘汰;一号和二号选择器个数都为1,则比较class选择器个数,一号为1大于二号为0,则一号生效。

计算权重的步骤:

1.先比较id次数的大小,相同比较class次数的大小,若相同则比较html次数的大小 ss

2.如果权重一样,name后出现的会覆盖先前出现的

3.看看一下是否直接选中目标元素,如果没有直接选中目标元素,name他的权重为0

4.如果都没有选中,那么谁离目标元素近就听谁的

总结:

  1. 先看有没有选中目标元素,如果选中,比权重,谁大听谁的。如果权重一样,谁写在后面听谁的
  2. 如果没有选中,权重为0.如果所有的选择器权重都为0,就近原则

TIPS:!important 能够把权重变为无限大。但是存在缺点:只能够作用在单个属性上。尽量少用。

p {

color: red !important;

font-size: 100px;

}

.lv {

color: green;

font-size: 10px;

}

		.lan {
color: blue;
font-size: 20px;
}

只能作用在单个属性,p{...}中只有color属性能起作用,而font-size则不起作用。但是不推荐使用此方法来改变权重,会引起权重计算失效和不方便维护。


行内元素和块级元素

  • 块级元素的特性:
  1. 自己霸占一行 ,不能与其他元素并列显示
  2. 可以设置宽度和高度
  3. 如果不设置宽度,块级元素会默认沾满整个父元素的宽
  • 行内元素的特性:
  1. 能够与其他的行内元素并排显示
  2. 不能够设置宽度和高度,宽度是内容的宽度,高度是内容的高度。

TIPS:可以通过CSS-display来改变行内元素和块级元素,属性值如下:

  • display:inline; 将元素 变为行内元素
  • display:block ; 将元素变为块级元素是
  • display:inline-block;将元素变为行内块元素

CSS使用心得小结的更多相关文章

  1. CSS选择器学习小结

    关于CSS选择器的问题,在实际项目中,以及一般的前端面试中会经常遇到.下面对此做一小结,梳理和巩固相关方面知识.(如有不妥之处,还望大家及时批评指正,以免误导他人) 一.选择器种类 1.id选择器(# ...

  2. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  3. html与css命名规范小结

    一.命名规则说明 所有的命名最好都用小写 使用英文命名 给每一个表格和表单加上一个唯一的.结构标记id 给每个图片加上alt标签,优点在于图片发生错误时,alt可以体现给用户 二.相对网页外层重要部分 ...

  4. CSS学习心得2

    CSS样式 链接 a:link - 普通的.未被访问的链接 a:visited - 用户已访问的链接 a:hover - 鼠标指针位于链接的上方 a:active - 链接被点击的时刻 当为链接的不同 ...

  5. CSS学习心得

    CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 外 ...

  6. CSS应用心得

    单纯Html配合CSS网页 下面用程序来实际总结一下 首先,在写程序的应该具有一个良好的编程习惯. 第一:排版,拥有一个良好的排版,有助于我们能够快速的理解以及阅读程序: 第二:注释,就如以下程序,作 ...

  7. 分享一下学习css,js心得

    简化代码,使页面简洁! web前端开发——将界面更好呈现给用户! 要了解在不同浏览器上的兼容情况.渲染原理和存在的bug! 网站性能优化.SEO: 代码的可维护性.性能: 网站重构的本质:建立一个前端 ...

  8. Html&CSS 今日心得

    今天和秋秋一起review了一下我自己写的登录页面.她给我提了几个point,对我很有启发. css样式的代码和html代码分离. 我自己做的时候是在google console里面调好了样式以后就直 ...

  9. css与div小结

    前些时间学习css与div的课程 什么是css呢 Css 级联样式表或层叠样式表(Cascading Style Sheet) 是能够真正做到 网页表现与内容分离的一种样式设计语言.相对于传统HTML ...

随机推荐

  1. gradle windows 环境变量

    我的电脑 ->  高级环境变量 GRADLE_HOME    D:\soft\gradle-3.5 path %GRADLE_HOME%\bin

  2. 【小练习03】CSS-表格(table)--天气预报

    表格基础知识链接:http://blog.csdn.net/baidu_37107022/article/details/71713281 练习要求实现如下效果图: 代码演示 <!DOCTYPE ...

  3. Java常用类之要点总结

    Java常用类之要点总结

  4. Python中Swithch Case语法实现

    而python本身没有switch语句,解决方法有以下3种:A.使用dictionaryvalues = { value1: do_some_stuff1, value2: do_some_stuff ...

  5. Sql的连接表补充

        连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行.             连接可分为 ...

  6. JS实现AOP拦截方法调用

    //JS实现AOP拦截方法调用function jsAOP(obj,handlers) {    if(typeof obj == 'function'){        obj = obj.prot ...

  7. android蓝牙学习

    学习路线 1 蓝牙权限 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses ...

  8. springMVC 配置和使用

    springMVC相对于Struts2学习难度较为简单,并且更加灵活轻便. 第一步:导入jar包 spring.jar.spring-webmvc.jar.commons-logging.jar.sp ...

  9. phpcms列表页内容如何替换?

    以aboutus.html页面为例. 1.将aboutus.html重新命名为list-aboutus.html: 2.在后台页面,在栏目列表中将栏目列表页模板设置为 list-aboutus.htm ...

  10. 下载旧版chrome

    问题描述: xp只能使用chrome 49及其之前的版本,去哪里下载? 解决办法: 1. 在这里 http://www.slimjet.com/chrome/google-chrome-old-ver ...