一、CSS的定义方式

1.内部样式:<style></style>

2.行间样式:<div style="width:100px;height:100px;">

3.外部样式:<link rel="stylesheet" type="text/css" href="地址" >

注:浏览器异步加载html、css、js文件

二、CSS选择器

1.常用选择器:类选择器、id选择器、标签选择器、通配符选择器

/*类选择器*/
/*假设页面有一个或多个同类名元素,且该类元素有一些共同的样式特性。当然通常我们的设计逻辑是有这样一些共同特性元素的需求,预先设计编写一组样式表,用来描述具备特定需求的元素。*/
/*假设有需求是有一些元素的宽高为100px,内边距和外边距为0,文本内容,文本溢出部分被剪切*/
.exa{
width: 100px;
height: 100px;
margin:0 auto;
padding: 0 auto;
text-align: center;
line-height: 100px;
overflow: hidden;
}

标签选择器与类选择器的使用逻辑非常相似,就是用来描述页面同一类标签的元素的样式。类选择器使用程序员自己在元素属性上定义的class属性值来选定(.类名),点加类名的方式来设置。而标签选择器直接使用标签名即可。

id选择器就是使用元素上定义的id属性值来设置,在di属性值前面加上井号“#”就可以实现,设置的特定的一个元素的样式。实际开发中并不建议使用id选择器来设置样式表,根据项目和开发手册要求来定。

通配符使用的应该是最少的一种,出现在常用名单里的原因是我们每个样式表的第一行都是用星号“*”,即通配符来去除元素原本的默认样式,如元素的默认边距、列表标签的默认序列号、超链接元素的默认字体颜色和下划线、统一全局字体大小和字体及颜色等一系列应用。

2.父子选择器/派生选择器

基于标签选择器、类选择器、id选择器的父子关系进行筛选需要匹配的元素,每级条件用空格间隔。

/*比如有需求是:找到页面中id为“showcase”的div下,所有有序列表的列表项内的img元素中,设置样式为宽300px,高200px,内外边距为0像素,超出部分隐藏*/
div #showcase ul li img{
margin: 0 auto;
padding: 0 auto;
width: 100px;
height: 100px;
overflow: hidden;
}

3并列选择器

这个选择器也是基于标签选择器、类选择器、id选择器来实现的,通过基础选择器组合,有别于父子选择器的是并列选择器的每个基础选择器之间不加空格。

/*例如有需求是:有一类元素是div并且都有类名是showcase和primary的样式是,宽高249px;内外边距为0,边框1像素蓝色*/
div.showcase.primary{
width: 249px;
height: 249px;
padding: 0 auto;
margin: 0 auto;
border: 1px solid blue;
}

4.直接子元素选择器

是在父子选择器的基础上演变而来的一个选择器,比如要找到一个div元素下的子元素em,但是在其他子元素下面还有em,所以就不能使用div em的父子选择器来实现了,这时候就可以采用直接子元素选择器div > em,在父子选择器的基础上添加一个大于号,中间可以加空格也可以不加空格。这样就是可以实现匹配一个元素下的子元素,而不会影响到其他后代元素。

5属性选择器

在通常的情况下我们使用类名作为选择器或者id选择器其本质都是属性选择器,所谓的属性选择器就是使用元素的属性和属性值作为匹配条件。

语法:[属性值=属性值]

属性值的类型与元素上的一致,不需要发生改变。

/*比如有需求是找到img元素的图片名称是figure的元素,并设置宽300px,高250px,超出部分隐藏*/
img[src*="figure"]{
width: 300px;
height: 250px;
overflow: hidden;
}

注意留意中间出现的一个符号“*”,在属性选择器中还存在^、$、~、|四个特殊的符号。

星号(*)表示在属性值中出现了指定的字符串。

(^)表示在属性值内有以指定字符串开头的属性值。

($)表示在属性值内有以指定字符串结尾的属性值。

(~)表示在属性值内有指定的属性值。

(|)表示在属性值整个以指定的字符串开头。

[class="aaa bbb ccc"]{...}
/*(^)匹配属性值内有指定的字符开头的属性*/
[class^="a"]{...}
[class^="b"]{...}
[class^="c"]{...}
/*(|)匹配属性值以指定的字符串开头*/
[class|="a"]{...}
[class|="aa"]{...}
[class|="aaa b"]{...}
...

6.分组选择器

分组选择器就是同时有多个选择器同时匹配一个样式列表,使用逗号间隔。

.exa,div #showcase ul li img,div.showcase.primary,img[src*="figure"]{...}

7.伪类选择器

通过指定伪类设置元素样式,伪类即为不需设置就存在的类,css语法自有的类。在一定程度上解决了行为特性的需求。

 :active 向被激活的元素添加样式
 :focus 向拥有键盘输入焦点的元素添加样式
 :hover 当鼠标悬浮元素上方时,向该元素添加样式
 :link 向未被访问的链接添加样式
 :visited 向已被访问的链接添加样式
 :first-child 向元素的第一个子元素添加样式
 :lang 向带有指定lang属性的元素添加样式

三、伪元素

1.在一个标签内,内容前后隐式的存在逻辑上的两个元素,内容的逻辑前是:before,内容的逻辑后是:after

2.在css中选取伪元素的语法:标签名::before/after

3.伪元素中的content样式属性可以设置伪元素的内容,这个样式只存在伪元素中,必须写content才能生效(content:"";)

4.伪元素是行级元素

 :first-letter 向文本的第一个字母添加特殊样式(只是应块级元素)
 :first-line 向文本的首行添加特殊样式(只适应块级元素)
 :before 在元素之前添加内容
 :after 在元素之后添加内容

伪元素是由HTML语法给每一个标签内置的虚拟但真实存在的元素,这里的属性其实质是虚拟标签的class值

四、css样式权重

!important        infinity     正无穷     写在样式后面

行间样式          1000

id                      100

class|属性|伪类  10

标签 | 伪元素      1

通配符                0

注:计算机的:正无穷+1 > 正无穷

权重数值采用的256进制计算。

css复合样式的权重采用权重值相加,谁的权重值的和大使用谁。

学习总结:CSS(一)定义方式、选择器、选择器权重的更多相关文章

  1. 前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器

    前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器 一丶CSS简介    叠样式表(英文全称:Cascading Style Sheets)是一种用来表现 ...

  2. css的存在方式和选择器

    css的存在方式 元素内联 页面嵌入 外部引入 元素内联 直接在html的标签中定义样式,类似于: <div style="属性1;属性2;属性3"><div&g ...

  3. Unit 4.css的导入方式和选择器

    一.什么是css CSS是指层叠样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中.也就是说把HTML元素的样式都统一收集起来写在一个地方 ...

  4. css基础 引用方式 标签选择器 优先级 各式布局

    今天讲的css基础,了解了css即层叠式表,是美化网页,控制页面的样式. 样式表引进网页的3种方式1内联式,语法例子:<div style="width: 100px;height: ...

  5. NodeJS类型定义方式

    最近在学习nodejs,就是因为它比较轻便,并发量大,上手快.由于以前一直在做C#的后端,没有接触过javascript,所以还得慢慢学习之. nodejs所用的是javascript语言,它没有如C ...

  6. python 全栈开发,Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)

    一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...

  7. {前端CSS} 语法 Css的几种引入方式 css选择器 选择器的优先级 CSS属性相关 背景属性 边框 CSS盒子模型 清除浮动 overflow溢出属性  定位(position)z-index

    前端CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表来对文 ...

  8. Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)

    一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...

  9. 认识CSS中css引入方式、选择器、文本样式设置以及显示模式

    前端之HTML.CSS(三) CSS CSS-Cascading Styles Sheets,层叠样式表.用于网页的表现,主要用于布局和修饰网页. CSS引入方式 CSS的三种引入方式:行内样式,内部 ...

随机推荐

  1. 【XSY2787】Mythological VII 贪心

    题目描述 有两个指针\(l,r\),初始时\(l=r=k\) 给你\(a_1,\ldots,a_n\),你要移动\(l,r\),\(l\)只能每次向左移一个数,\(r\)只能向右移一个数,要求任意时刻 ...

  2. java使用Rome解析Rss的实例(转)

    Rome简介 Rome是为RSS聚合而开发的开源包,它可以支持0.91.0.92.0.93.0.94.1.0.2.0,可以说rss的版本基本上都支持了. Rss简介 RSS是站点用来和其他站点之间共享 ...

  3. git 本地推送远程仓库报错: error: failed to push some refs to 'https://github.com/yangtuothink/mxonline.git'

    报错现象 添加远程仓库后 推送代码的时候报错 报错分析 远程代码和本地代码不匹配问题 远程初始仓库的创建有些默认 的 README什么的本地是没有的 需要先同步后再上传 报错解决 git push - ...

  4. apache 与 tomcat、PHP 关系

    Apache:web网络服务器,只支持静态网页,如HTML,C语言开发的 Tomcat:web网络服务器,是apache的扩展,且是个java代码解释器,可脱离apache独立使用,Servlet.J ...

  5. MT【253】仿射和蒙日圆

    如图,设点$M(x_0,y_0)$是椭圆$C:\dfrac{x^2}{2}+y^2=1$上一点,从原点$O$向圆$M:(x-x_0)^2+(y-y_0)^2=\dfrac{2}{3}$作两条切线分别与 ...

  6. linux中监控CPU、内存和磁盘状态的shell脚本。(centos7)

    这篇博客中所写的脚本,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控.不过自己写一遍,可以让初学者对CPU.内存.磁盘等一些基础知识和基础命令更加了解. 1.利用vmstat工具监控CPU ...

  7. Android如何着色字符串的特定部分

    文章选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文探讨Android如何着色字符串的特定部分. ...

  8. 【CF671D】Roads in Yusland(贪心,左偏树)

    [CF671D]Roads in Yusland(贪心,左偏树) 题面 洛谷 CF 题解 无解的情况随便怎么搞搞提前处理掉. 通过严密(大雾)地推导后,发现问题可以转化成这个问题: 给定一棵树,每条边 ...

  9. js jquery数组去重

    数组去重建议直接使用jquery的 $.unique(arr);方法,此外比较好的方法是本文中的unique3方法比较快用了一个hash表,就是所谓的空间换时间.本文还提供了很多其他写法,都是大同小异 ...

  10. [CTSC2018]暴力写挂——边分树合并

    [CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离. 解决多棵树的问题就是降维了. 经典的做法是边分 ...