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. 第 12 章 MySQL 可扩展设计的基本原则

    前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合 ...

  2. 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述

    9.2.1  概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...

  3. 2.solr学习速成之安装

    1.下载解压solr-5.3.1.tgz [root@205 opt]# tar -zxf solr-5.3.1.tgz -C /opt/module/ 2.将solr-5.3.1/server/so ...

  4. DelayQueue使用

    假设现有如下的使用场景: a) 关闭空闲连接.服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之. b) 缓存.缓存中的对象,超过了空闲时间,需要从缓存中移出. c) 任务超时处理.在网络协议滑 ...

  5. 多线程编程-- part 5.3 LockSupport

    一.LockSupport的介绍 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语.  LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程 ...

  6. vue实例的几个概念

    1.构造器 vue应用都是通过vue构造函数创建实例来启动的,在创建vue实例时需要传入一个options对象,该对象可以包含数据.模板.挂在元素.方法.生命周期钩子等选项: var vm = new ...

  7. 码工具通过ICP备案

    5月22日,为广大程序员造福的在线工具--码工具 通过了ICP备案,这也意味着本站也越来越正规化,规范化.大家从今日起就可以在网站底部看到本站的ICP备案号. 备案/许可证编号:粤ICP备170597 ...

  8. [深圳/广州]微软SQL技术沙龙分享会(MVP)

    [深圳/广州] 新一期俱乐部活动报名开始,这次是广深地区SQL Server 技术沙龙分享会(MVP),SQL Server作为一个数据平台,不管是SQL Server 2017 on Linux 还 ...

  9. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  10. javascript的运行过程以及setTimeout的运行机制

    关于javascript的运行机制大家都应该有所了解了吧,其实javascript是一个单线程的机制,但是因为队列的关系它的表现会让我们感觉是一个多线程的错觉.javascript在运行的时候是这样的 ...