上一篇写了关于html的知识,算是小试牛刀,这次来尝试写一下css。

  • 初步了解css

css的全称为cascading style sheet—— 层叠样式表,通过编入代码来对html里的标签做出各种各样的修饰与改变。

  • 如何引入css
  1. 引入外部css文件

这是我们最常用的方式,通过在head中引入一个link标签引入

例:<link rel="stylesheet" type="text/css" href="1234.css">

2.  在head里写一个style标签,把css写入该标签中

例:

<style>
*{ margin:0; padding:0; }
.miao{
height: 100px;
width: 80px;
background-color: black;
}

</style>

3. 在标签内部直接写在style属性里(个人不喜,但有时候确实好用)

例:<span class="q" style="width:1014px;height:138px;">

在多数情况下,我们推荐第一种方式,因为这样做的话由link引入的css不会阻塞html的

加载(属于异步加载,html和css会同时加载,不会出现在未加载玩css的情况下无法加载html)

4.import方式引入(已经弃用)

在head标签里面写一个style标签,在第一行写上@import url();url里面写上css文件的地址。

这种引入方式存在缺点导致它现在被废弃使用:

1.必须写在第一行,若有多个则一起写在最前面。

2.程序读到import的时候,会忽略掉import,等到html里面的所有内容包括图片在内的所有资源全都加载完之后才加载import的css文件(同步加载,先加载html)

  • import与link的区别

1.@import 机制不同于link,link是加载页面前css加载完毕,@import 是先读取文件再加载

2.@import是css2.0里的 ie5以下不支持

3.用js控制dom时改变样式,只能用link,@import不是dom能控制的

4.最后一个很有意思,@import url有最大次数的限制,IE6最多引入31次,firefox并没有发现

@import的优点: 多个样式表导入一个样式表中,页面只需要引入一个即可

  • 关于css的优先级

1.位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。

2.第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。  

3.第三级的优先属性由<link/>标签所引入的样式表定义。  

4.第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。  

5.第五级优先的样式有用户设定。   

6.最低级的优先权由浏览器默认。

link标签引入和style标签修改样式二者之间并没有什么优先级,谁写在前面谁就先执行.。有时候会因为网速问题,link写在上面,但是link还没有加载进来,所以先运行了后面的style,这种问题是网速导致的,并不是二者本身拥有优先级的问题。需要注意的是写在后面的css会覆盖掉写在前面的css,这里再三强调,为了不引起冲突,且让用户具有良好的体验性,我还是推荐引入外部css文件

  • 关于css的选择器

1.class选择器

我们最常使用的选择器,目的是元素添加一个类名。(一个元素可以有多个类名,一个类名也可以同时赋给多个元素,这并不互相冲突。)

例:我们先给一个标签附上一个类名

如<div class="p">

然后在css中对其进行控制(这里引图片是怕看不清前面的那个点)

2.  id选择器

跟class用法几乎一致,需要注意的是id选择器只能一对一使用,一个标签只能有一个id,一个id只能配给一个标签

例:我们先给一个标签附上一个id

如<div id="p">

然后在css中对其进行控制(注意这里用的是#)

我们一般不用用id来做标记,因为一旦使用,后台的php会提取出来id,然后换成他们的标记,因此可能会导致我们的选择器选择不出来我们想要的标签。

3属性选择器

下面的例子为带有title 属性的所有元素设置样式:

在css中必须要考虑权重问题:

  • 属性选择器的权重问题:  !important  无穷 // 行间样式 1000 // id 100 // class|属性|伪类 10 // 标签|伪元素  1 // 通配符 0
  • 权重的进制是
  • 权重越大,优先级越高
  • 权重相同,则遵循后面覆盖前面的原则
  • 在计算机语言中,无穷+1>无穷

4.通配符选择器

常用作布局,由于其权重为0,任何一个属性都能将其覆盖

5.标签选择器

看懂了上面的就没啥说的,直接上图

6.父子选择器

找父选择器下的子选择器,沿用上述多个选择器的标准

可以不同的选择器一并使用(这里就只是截取了class=“last3”中的a标签,对其余的a标签无影响)

也可以多个同类选择器一并使用(main下的zhedang)

这里有一点需要注意,浏览器检索时是先找子选择器再找父选择器,因为便于检索,用我的话解释是一个爸爸可以有多个亲儿子,而一个儿子只能有一个亲爸爸,通过爸爸找儿子难,而通过儿子找爸爸是相对容易的。

7.直接子元素选择器

div>p

div直接子元素里面p,按我的理解就是只要儿子不要孙子

<div>
<p></p>
</div>

8.分组选择器

<p></p>

<a></a>

<div></div>

想同时给三种标签都加上相同的样式,就用p, a, div {} 这样的写法,记住中间是用逗号连接。

9 并列选择器

<p class=”demo”></p>
<div class=”demo”></div>

如果出现这种情况怎想要选择出类名是demo的div,我们可以使用div.select {} 来选择出来(标签名在前)。

当然,这种情况理应在写代码时避免

  • 关于css的样式

样式=属性名加属性值,样式很多,这里不加详解,大家感兴趣可以去w3c查查看,只提几个要点

文字的颜色是color,而非font-color

系统默认字体:font-family:“arial”;

设置颜色的方法:1.输入英文单词(black)

2.输入三位颜色代码(#ff00cc)

3.rgb模式(rgb(255, 255, 255))

px和em都是相对长度,但前者长度相对固定(可以按绝对理解),后者则是真正的相对长度。

盒模型样式顺序:上,右,下,左(4个);上,左右,下(3个);上下,左右(2个),上下左右(1个);

这里要重点说盒模型

先引一张图片

css它有:外边距(margin)、边框(border)、内边距(padding)、内容(content)四个属性

类比盒子,内容就是盒子里装的东西;而内边距(PADDING)就是怕盒子里装的东西损坏而添加的泡沫或者其它抗震的辅料;边框(BORDER)就是盒子本身了;至于边界(MARGIN)则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出,记住这里的盒子本身不包括MARGIN。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。关于弹性盒子在之后的css3篇我会详细总结,这里就先理解一下。

在计算盒模型大小时要注意:

盒模型本身不包括margin

w3c的标准盒模型,width不包含padding和border,指的只有content。

IE6混杂模式的盒模型,width包含padding和border,它设定了整个盒子的大小。

css3中就有一个属性可以设置我们使用哪一种盒模型—— box-sizing: border-box IE6混杂模式的盒模型; content-box; 标准模式的盒模型

写给自己的web总结——css篇(1)的更多相关文章

  1. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法

    讲一讲CSS的position/float/display都有哪些取值,它们相互叠加时的行为都是什么?  列出display的值,说明他们的作用.position的值, relative和absolu ...

  2. [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

    cp: https://blog.csdn.net/zengyonglan/article/details/53304487 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时 ...

  3. [Web 前端] CSS篇之3. 如何保持浮层水平垂直居中

    原文链接](http://www.cnblogs.com/yaliu/p/5190957.html) 浮层水平垂直居中方法 (一)利用绝对定位与transform <div class=&quo ...

  4. web前端面试试题总结---css篇

    CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ...

  5. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇(昨天有个群友表示写的简单了点,然后我无情的把他的抄了一遍)

    某个群友 http://www.cnblogs.com/coco1s/   很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础 ...

  6. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正 ...

  7. 面试题2:BAT及各大互联网公司2014前端笔试面试题:HTML/CSS篇

    BAT及各大互联网公司2014前端笔试面试题:HTML/CSS篇 Html篇: 1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? IE: trident内核 Firefox:gecko内 ...

  8. BAT及各大互联网公司前端笔试面试题--Html,Css篇

    注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/5931347.html )作者:wangwen896 整理分享出来希望更多的前端er共同进步吧,不仅适用 ...

  9. BAT及各大互联网公司2014前端笔试面试题:HTML/CSS篇

    BAT及各大互联网公司2014前端笔试面试题:HTML/CSS篇 2014/08/03 · Web前端, 开发 · CSS, HTML, 技术面试 分享到: 188 MongoDB集群之分片技术应用 ...

随机推荐

  1. boot之mybatis

    特别注意,此种方法和starter不兼容,我用了两个方式混蛋,发现跑不起来! spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driv ...

  2. js 图片转换为base64 (2)

    <input type="file" id="testUpload"> <img src="" id="img& ...

  3. Python 面向对象(五) 描述器

    使用到了__get__,__set__,__delete__中的任何一种方法的类就是描述器 描述器的定义 一个类实现了__get__,__set__,__delete__中任意一个,这个类就是描述器. ...

  4. Python [习题] 字典排序

    [习题] 对此字典分别按照value 和key 如何排序? dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} In ...

  5. AIO5系统中-打印样式常见问题处理

    1.为什么我的报表没有数据显示? 答:请看一下报表是否有绑定数据源,有添加查询,如果这些都做了,请看下主项数据的数据源有没有绑定,这些都绑定了,就会有数据的显示. 2.为什么我做的报表分组很乱? 答: ...

  6. c语言的字符串

    1. 字符串   1. 什么是字符串 ● 简单的字符串”itcast” ● 一个’i’是一个字符 ● 很多个字符组合在一起就是字符串了 2. 字符串的初始化 ● char a[] = “123”;   ...

  7. windows 下更新 npm 和 node

    原文链接 公司的新项目要启动了,需要使用 Angular 4.0,并且使用 webpack 工具进行打包.所以就需要安装 node.node 的安装很简单,在 node 的官网 nodejs.org  ...

  8. Nginx的知识分享,感兴趣的可以看一下

    我干了五年了,我想把我的经验跟大家分享一下,欢迎大家阅读. 1. Nginx入门简介 WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. WWW 是 In ...

  9. linux 安装 cenos7 和 jdk

    安装一个虚拟机安装cenos7 版本的 安装完虚拟机后必备工具 第一步. 配置网路 设置桥接网路设置静态网络参考 下面博文 http://www.cnblogs.com/Jerry1104/p/758 ...

  10. C++几个技巧:智能指针在消息传递中的使用,元组,及lambda删除器

    1.SendMessage/PostMessage中传递对象参数 (1)方法1:使用shared_ptr 发送端: PostMessage(MyhWnd, CWM_SOME_ERROR, 0, rei ...