渡一教育公开课重点笔记之css
- 主流浏览器及内核
浏览器 内核
IE trident
Firefox Gecko
Google chrome Webkit/blink(2014年上市)
Safari Webkit
Opera presto
- 引入css的三种方式
1)行间样式
2)页面css
3)外部css
- 计算机语言中对同步与异步的解释
1)同步的:不同时执行,与生活中的同步相反
2)异步的:同时执行,与生活中的异步相反
- 在一个元素上想要添加多个class,在class上写上class名,每个class名之间用空格隔开
如<div class=”demo demo1 demo2”></div>
- *通配符选择器,可选中所有标签,包括body标签,head标签,html标签
- 属性选择器:[属性名/属性名=”属性值”]
- 行间样式与各个选择器的优先级:
!important > 行间样式 > id > class | 属性选择器 | 伪类选择器 > 标签选择器 | 伪元素选择器 > 通配符选择器
- Css权重
!important 无穷大
行间样式 1000
Id 100
class | 属性选择器 | 伪类选择器 10
标签选择器 | 伪元素选择器 1
通配符选择器 0
- 计算机中的无穷大是一个定量,即 Infinity + 2 > Infinity
- 各权重值之间的进制是256进制
- Css复杂选择器
1)父子选择器/派生选择器 所用的选择器之间必须成上下一代的关系,比如父子,爷孙等等 div span em{}
2)直接子元素选择器 后一个选择器必须是前一个选择器的直接子元素,好比真正的父子关系 div > em{}
3)浏览器遍历父子选择器/派生选择器的顺序是自右向左的
4)并列选择器 用多个限制条件选中一个元素,这多个限制条件必须是一个元素上面的 div.demo{} div和.demo中间不能有空格
5)并列选择器当中如果要用标签选择器和class选择器或id选择器并列时,标签选择器必须放在最前面
6)分组选择器 每个元素之间用逗号隔开 div,span,em{} 为了解决代码冗余
7)伪类选择器 选择器:hover{} 等
- 浏览器默认字体大小是16px
- 设置字体的大小等于设置字体的高度
- font-weight的属性值有lighter(细体),normal(正常),bold(加粗),bolder(更粗),100-900;字体是否被加粗/变细,加粗/变细程度是多大,取决于字体包
- font-style 的属性值有:italic(斜体)等
- 互联网最常用的字体为arial
- 颜色的三种表示方式
1) 颜色名,如red,green,blue
2) 颜色代码,十六进制颜色代码(从00---ff)只有当三种的两位数都重复时才可以简化,如:#000000 --> #000 #00ff44 --> #0f4
3) 颜色函数,rgb(0-255,0-255,0-255)
- 特用颜色:transparent 透明色
- css只有块注释(/**/),没有行注释(//)
- line-height 单行文本所占高度(行高); 让单行文本的行高等于你所设置的容器的高度,文本就会在容器内垂直居中,水平居中(text-align:center)
- text-indent 首行缩进 text-indent:2em则可以缩进两个字符
- 单位讲解:
1) px 一个像素只能代表一个颜色点,像素是一种相对单位
2) em 1em = 1 * font-size 它是一个相对单位,相对font-size来说
3) 文字的行高是1.2倍行高,就是文字的行高 = 1.2em
- text-decoration 的属性值 none(默认),underline(定义文本下的一条线),overline(定义文本上的一条线),line-through(定义穿过文本下的一条线),blink(定义闪烁的文本),inherit(规定应该从父元素继承 text-decoration 属性的值)
- cursor 光标 常用:pointer(小手)
- css企业开发经验和习惯
1) 图片img在设置宽高时,只设置其中的一个,另一个就会自动拉伸
2) 块级元素(block),行级元素(Inline),行级块元素(inline-block)
元素 |
行级元素(内联元素) display:inline |
块级元素 display:block |
行级块元素 display:inline-block |
特点 |
内容决定元素所占位置 |
独占一行 |
内容决定大小 |
不可以通过css改变宽高 |
可以通过css改变宽高 |
可以改宽高 |
|
举例 |
Span strong em a del 伪元素 |
Div p ul li ol form address |
img |
3) 凡是带有Inline的元素(如inline,inline-block)都有文字特性,这也是当把四张图片并排放在一起时,中间会有间距的原因;要想去掉这一间距,可以把每个img标签之间的空格去掉(如:<img src="demo.jpg" alt=""><img src="demo.jpg" alt=""><img src="demo.jpg" alt="">);
在测试时,可以使用margi-left设置负值来调,但是当把项目写完后,在上线前记得去掉margi-left,因为上线之后,代码会被压缩,代码之间的空格等会被去掉,如果设置了margin-left为负值,图片就会被挤压
4) 在企业开发中,可以先写css,再写html(先编写功能,再选配功能)
5) 在企业开发中,可以先对一些标签进行初始化,去掉系统对标签的样式,如可以写一个css文档,用标签选择器把ul li 前的小黑点去掉,把a标签系统的蓝色变成黑色,把em标签的斜体样式去掉(font-style:normal);然后把这个css引入html文档
6) 一个html文档中可以引入多个css文档,Js文档
7) 在初始化所有标签时(比如让margin:0;padding:0),建议用通配符选择器(*),因为通配符选择器的权重值为0,不会对后续的选择器造成影响
- 盒子模型
1) 图解盒子模型
2) 内边距(padding)和外边距(margin)margin/padding:上,右,下,左
3) 计算一个网页中的可视化盒子的真实高度和真实宽度时,不能把外边距(margin)算进去,因为外边距不是可视化的,给元素设置margin和padding值是%,它是相对于其父元素的宽度
4) body元素的默认的margin值是8像素
- 定位(层模型)
1)绝对定位(position:absolute)
① 概念:脱离原来的位置进行定位;当一个元素被设置了绝对定位时,它会进入其他层并且该元素的原来位置会被释放掉,位于该元素下面的元素就会上去占据该元素原来的位置(层模型)
② 相对于最近的有定位的父级进行定位,如果没有,那么相对于文档进行定位
2)相对定位(position:relative)
① 概念:保留原来位置进行定位;当一个元素被设置了相对定位时,它会进入其他层但是该元素依然会占据原来的位置,不会将其释放(层模型)
② 相对于它原来的位置进行定位
③ 相对定位最好不要给top和bottom设置百分值,因为浏览器的支持性有问题
3)一般在企业开发时,将相对定位设为参照物,用绝对定位进行定位
4)设置定位值时,一般是由它的上下左右的边线来说的
5)z-index属性只在position属性上有效
6)固定定位(position:fixed)
- 让一个元素/容器在文档/可视区域正中间进行居中的方法
1)在文档正中间进行居中的代码
要设置元素的选择器{
Width:元素的宽度;
Height:元素的高度;
position: absolute;
top:50%;
left:50%;
margin-left:-(元素的宽度/2);
Margin-top:-(元素的高度/2);
}
2)在可视区域正中间进行居中的代码
要设置元素的选择器{
Width:元素的宽度;
Height:元素的高度;
position: fixed;
top:50%;
left:50%;
margin-left:-(元素的宽度/2);
Margin-top:-(元素的高度/2);
}
3)图解让元素居于正中间的步骤(以居中五环为例)
① position:定位(absolute/fixed);top:50%;left:50%;
② margin-left:-(元素宽度/2);margin-top:-(元素高度/2);
- 两栏布局:让两个div元素在同一行(让一个元素设置绝对定位,给另一个元素设置margin,让它被压住的部分出来;注意先写要被设置绝对定位的那个元素)
- 两个经典bug
1) margin塌陷:对于父子嵌套的元素,垂直方向的margin两者会粘合在一起,两者之中取最大的那个margin,作用于两个元素
解决方法:① 给父元素的顶部设置一个边框(不能使用)
② BFC(块级格式化上下文)可以改变盒子的语法规则
如何触发一个盒子的bfc:(给父级设)
① position:absolute;
② display:inline-block;
③ float:left/right;
④ overflow:hidden;
2) margin合并:对于兄弟元素来说,垂直方向上的margin值是合并的,两者之间取最大的margin值,两者相同取其中的一个
解决方法:BFC (给两个元素设置一个父级,在父级的css里面写上触发bfc方法中的其中一种,然后把两个兄弟元素(或其中一个元素)放在父级里面,这样他们垂直方向上的margin值就变成累加的了)
不好处:为了解决这个bug,我们就要去改动html结构,这在企业开发中是绝对禁止的,所以这个bug可以不解决
- 企业开发中严禁为了改一个bug而去改动html结构
- 浮动模型
1)浮动元素产生了浮动流
① 所有产生了浮动流的元素,块级元素看不到他们(受影响)
② 产生了bfc的元素和文本类属性(inline)的元素以及文本都能看到浮动元素(不受影响)
2)清除浮动(clear:both/left/right)
① 要想让一个浮动元素下面的元素不受浮动流影响,可以给这个元素设置一个清除浮动
② 能清除浮动的元素必须是块级元素
③ 要想用一个盒子包住浮动元素,可以在所有浮动元素的最下面放一个p标签,给这个p标签设置一个清除浮动(开发中不能使用)
④ 要想解决②中的问题,可以给这些浮动元素的父级设置一个后面的伪元素,并且把这个伪元素改为块级元素(display:block),再到里面进行清除浮动操作(clear:both)
⑤ 要想解决②中的问题,还可以给父级元素触发bfc
- 伪元素
1)伪元素存在于任意一个元素当中
2)伪元素天生是一个行级元素,可以通过display将其改为块级元素或者行级块元素
3)伪元素示例代码
该元素::before/after{
content:”内容”;
}
- 对一个元素设置了position:absolute或者float:left/right;系统会打内部把元素转换成inline-block
- 文字溢出处理(溢出容器,要打点展示)
1)单行文本
处理方法:给要处理的文字设置三件套代码
white-space:nowrap; 不要让文字换行
overflow:hidden; 隐藏溢出文本
text-overflow:ellipsis; 对溢出的隐藏文本打点处理
2)多行文本
处理方法:对溢出部分做隐藏处理(overflow:hidden)
- 背景图片处理
1)background-image:url(图片位置); //引入图片
2)background-size: 图片宽度,图片高度; //设置图片大小
3)background-repeat: no-repeat; //设置图片是否平铺
4)background-position: x,y; //设置图片位置(像素值,top,left,center,百分值)
- 当网速很低时,浏览器会屏蔽掉css和js
- 图片如何很好的去代替文字:
1)首先给元素加上被图片代替掉的文字;然后用css把图片引进,设置;接下来对该元素加上的文字设置css:首先设置首行缩进(text-indent),让它的值超过元素的宽度;接下来,给文字设置(white-space:nowrap; ),让文字不要换行;最后,设置(overflow:hidden;)让溢出文字隐藏。这样的话,当网速不好时,css被屏蔽了,文字就会被显示出来,正常情况下文字不会出现,不会影响其基本功能。
2)首先给元素加上被图片代替掉的文字;然后用css把图片引进,设置;接下来对该元素加上的文字设置css:首先把容器的高度设置为0;接下来设置padding-top为容器原高度,这时文字就会被挤到下面去;最后,设置overflow:hidden;将文字隐藏就可以了
- 企业开发相关规定
1)行级元素只能嵌套行级元素
2)块级元素可以嵌套任何元素,但是p标签里面绝对不能嵌套块级元素
3)a标签里面不能嵌套a标签
- 文本类元素:inline,inline-block (凡是带有inline的元素都有文本的特性)
- 一个行级块元素中如果有文字,那么外面的文字会与其文字底对齐
- vertical-align 可以调整垂直方向的文字位置(设置文字垂直对齐方式)
持续更新中.........
渡一教育公开课重点笔记之css的更多相关文章
- 渡一教育公开课重点笔记之html
常用的编码字符集:(charset) 1)gb2312 (国标第2312条)缺点:只能识别简体中文 2)gbk (国标扩展字符集,可识别所有亚裔字符) 3)Unicode (万国码) 4)Utf-8 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...
- LR 算法总结--斯坦福大学机器学习公开课学习笔记
在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数 模型指给定输入xi如何去 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记2 Xcode、Auto Layout及MVC
原文链接不知道在哪, 接着上一话来讲,上一话中讲到了MVC,那么MVC在IOS8开发中是如何应用的呢?Paul Hegarty老师给我们展示了一个计算器的Demo,首先新建一个工程,老师把AppDel ...
- Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用
机器学习由对于人工智能的研究而来,是一个综合性和应用性学科,可以用来解决计算机视觉/生物学/机器人和日常语言等各个领域的问题,机器学习的目的是让计算机具有像人类的学习能力,这样做是因为我们发现,计算机 ...
- 斯坦福iOS7公开课11笔记及演示Demo&访问HTTPS链接下载数据
这一节主要介绍UITableView以及iPad,Demo为从Flicker下载图片并显示,但是实际过程中发现需要FQ并使用HTTPS连接,所以这次用了两个Demo,一个是课程中的Demo,另一个是简 ...
- 斯坦福iOS7公开课10笔记及演示Demo
这一节主要介绍了多线程中的串行队列以及滚动视图UIScrollView. 1 .多线程 这一节只是简单介绍了多线程的串行队列,即把任务加入线程队列后按顺序逐步执行. (1)目前iOS多线程提供的方法主 ...
- 斯坦福iOS7公开课7-9笔记及演示Demo
这一部分主要介绍了iOS的绘图.手势.协议.block.力学特效动画(包括重力.碰撞.吸附等)以及自动布局的内容. 1.绘图.手势 (1)调用一个自定义的UIView时,可以使用awakeFromNi ...
- 斯坦福iOS7公开课4-6笔记及演示Demo
1.变量类型别滥用id,如果不仔细容易在程序执行时引发错误,因为在编译阶段编译器只是检测变量对象所属类型,尤其是类型为id时代表任何类型都可以通过检查,但不会检测变量对象调用的方法,这样当对象所属类不 ...
随机推荐
- 关于javaweb开发的环境搭建(一)Tomcat
进行Tomcat的下载及环境配置 1.下载地址 http://tomcat.apache.org/ 2.下载的注意事项 下载的Tomcat版本要与自身电脑安装的java版本相匹配,下载时,点击 ...
- Redis系列(一):Redis简介及环境安装
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗? 什么是Redis? R ...
- KindEditor.ready 不执行的解决方法
问题描述 按照官网的要求,一一都设置好了,但就是没法显示富文本编辑器. 1.设置好textarea输入框 <textarea id="myEditor" name=" ...
- 小程序和wepy做循环渲染如何点击拿到相对应的值
数据和其他的就忽略,简单上手,wepy的for渲染方式改成对应的就行,传参触发不用改 <view wx:for="{{list}}"> {{item.title}} & ...
- szTom's Code Style
介绍szTom在C++中使用的代码风格. 头文件 必须使用using namespace std; 如果是C头文件,必须使用c前缀文件名. #include <cstdio> 而不是 #i ...
- LeetCode刷题预备知识(二)
Python四大数据结构的属性及方法 在LeetCode刷题预备知识一中我们掌握了常见的内置函数,和四大数据结构的基本概念: 但只掌握这些还远远不够,我们还需了解四大数据结构的属性及方法才能更高效快速 ...
- php获取本年、本月、本周时间戳和日期格式
时间戳格式: //获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0 ...
- poj 2253 最短路 or 最小生成树
Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sit ...
- python 注册登录(文件操作)
name = input("请注册用户:") password = input("请注册密码:") with open(file="user" ...
- 在winform中使用cefsharp.winform嵌入浏览器(含视频教程)
免费视频教程和源码: https://www.bilibili.com/video/av84573813/ 1. 开始使用CefSharp在Winform中嵌入网页 2. 解决重复打开Cefsharp ...