最新免费视频:www.pythonav.com (冒着被砍死的风险)

前端之 CSS🤖

css (层叠样式表) : 对html标签的渲染和布局

  1. 查找 (选择器)
  2. 操作标签 (属性操作)

导入用 link 标签,后面的href就用你的文件路径就好

写css文件,要单独写到一个文件里面去

推荐 : 链接式

1. 行内式 :
	<p style='background-color: black'>hello doubi </p>

2. 嵌入式 : 嵌入式是将CSS样式几种写在网页的<head></head>标签对的<style></style>标签对中.  格式如下:
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: #2b99ff;
        }
    </style>
</head>

3. 链接式 : 将一个.CSS文件引入到HTML文件中
<link href="mystyle.css" rel="stylesheet" type="text/css"/>

二. css的选择器(Selector)

'选择器'指明了{}中的'样式'的作用对象,也就是'样式'作用于网页中的哪些元素.

一 .基本选择器
	
	标签选择器 : p{}
	id选择器 : #i1{}
	class选择器 : .c1{}  !!!常用
	统配选择器 : *{}   


二 .组合选择器

后代选择器
.c2 p{
	color : red;
	}
所有属于c2类后代的p标签都使用这个样式.   用 空格
	
子代选择器
.c2>p{
	color : red;
	}
所有属于c2类的子元素p标签适用. 只适用子元素,孙子元素不能用,兄弟元素也不行.     用>.

毗(pi)邻选择器 :
	.c2+p{
		color : red;
		}
紧随.c2之后的所有同级p标签. 用+.

兄弟选择器 :
.c2~p

##标签嵌套 : 块级元素可以嵌套内联元素或者某些块级元素.但!!!内联元素不可以嵌套块级元素,它只能包含其他内联元素.  再注意 : p标签不可以包含块级元素.


三 .属性选择器 : 
	E[att]          匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略。
                比如“[cheacked]”。以下同。)   p[title] { color:#f00; }
 
 
	E[att=val]      匹配所有att属性等于“val”的E元素   div[class=”error”] { color:#f00; }
	 
	 
	E[att~=val]     匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素
	                td[class~=”name”] { color:#f00; }
	 
	E[attr^=val]    匹配属性值以指定值开头的每个元素                    
	                div[class^="test"]{background:#ffff00;}
	 
	E[attr$=val]    匹配属性值以指定值结尾的每个元素    div[class$="test"]{background:#ffff00;}
	 
	E[attr*=val]    匹配属性值中包含指定值的每个元素    div[class*="test"]{background:#ffff00;}
	
四 .选择器的优先级 : 
	继承是css的一个主要特征,依赖于祖先>后代的关系.
	!!! 任何显示申明的规则都可以覆盖其继承样式。 
	!!! 有一些属性不能被继承,如:border, margin, padding, background等。
	
	###CSS的优先级 : 
		所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。
	
	样式表中的特殊性描述了不同规则的相对权重,它的基本规则是:
	
	
	1 内联样式表的权值最高               style=""---1000;
	
	2 统计选择符中的ID属性个数。       #id ---100
	
	3 统计选择符中的CLASS属性个数。 .class ---10
	
	4 统计选择符中的HTML标签名个数。 p ---1
	
	按这些规则将数字符串逐位相加,就得到最终的权重,然后在比较取舍时按照从左到右的顺序逐位比较。

🎃🎃🎃CSS的属性操作 : 重点

🤖🤖🤖display : 
		display:none; --让标签消失
		display:inline; 块级标签设置为内联标签
		display:block;  内联标签设置为块级标签
			注 : 一个内联标签如果设置为块级标签,是不允许它内部嵌套块级元素的.
			
		display:inline-block; 可做列表布局
				#具有inline,默认自己有多少占多少
				#具有black,可以设置无法设置高度,宽度,padding margin
		
		<div style='background-color:red;display:inline;'>asd</div>
		<div style='background-color:red;display:block;'>asd</div>
		
		
🤖🤖🤖float : 
	1 .基本浮动规则 :
	先了解一下block和inline温宿在文档流中的排列方式
	  block元素通常被现实为独立的一块,独占一行,多个block元素会各自新起一行,默认block元素宽度自动填满其父元素宽度。block元素可以设置width、height、margin、padding属性;

	  inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。inline元素设置width、height属性无效

		常见的块级元素有 div、form、table、p、pre、h1~h5、dl、ol、ul 等。
		常见的内联元素有span、a、strong、em、label、input、select、textarea、img、br等
		所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。
		
		脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。
		
		      假如某个div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行);如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是说A的顶部总是和上一个元素的底部对齐。此外,浮动的框之后的block元素元素会认为这个框不存在,但其中的文本依然会为这个元素让出位置。 浮动的框之后的inline元素,会为这个框空出位置,然后按顺序排列。
		例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
        }

        .r1{
            width: 300px;
            height: 100px;
            background-color: #7A77C8;
            float: left;
        }
        .r2{
            width: 200px;
            height: 200px;
            background-color: wheat;
            /*float: left;*/

        }
        .r3{
            width: 100px;
            height: 200px;
            background-color: darkgreen;
            float: left;
        }
    </style>
</head>
<body>

<div class="r1"></div>
<div class="r2"></div>
<div class="r3"></div>



</body>
</html>

	2 .非完全脱离文档流 :
		左右结构div盒子重叠现象,一般是由于相邻两个DIV一个使用浮动一个没有使用浮动。一个使用浮动一个没有导致DIV不是在同个“平面”上,但内容不会造成覆盖现象,只有DIV形成覆盖现象。
		那么如何解决呢?
			要么都不适用浮动,要么都适用浮动.或者对没有适用float的div设置一个margin样式.
			
	3 .腹父级坍塌现象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<style type="text/css">
         * {
             margin:0;padding:0;
         }
        .container{
            border:1px solid red;width:300px;
        }
        #box1{
            background-color:green;float:left;width:100px;height:100px;
        }
        #box2{
            background-color:deeppink; float:right;width:100px;height:100px; 
        }
         #box3{
             background-color:pink;height:40px;
         }
</style>
</head>
<body>

        <div class="container">
                <div id="box1">box1 向左浮动</div>
                <div id="box2">box2 向右浮动</div>
        </div>
        <div id="box3">box3</div>
</body>
</body>
</html>

解决办法:
	1) 清除浮动 : clean
		clear语法:
		clear : none | left | right | both
		
		取值:
		none : 默认值。允许两边都可以有浮动对象
		left : 不允许左边有浮动对象
		right : 不允许右边有浮动对象
		both : 不允许有浮动对象
		
		但是需要注意的是:clear属性只会对自身起作用,而不会影响其他元素。
		
		把握住两点:1、元素是从上到下、从左到右依次加载的。

                 2、clear: left;对自身起作用,一旦左边有浮动元素,即切换到下一行来保证左边元素不是浮动的,依据这一点解决父级塌陷问题.
                 
	2) 固定高度
		<div class="container">
                <div id="box1">box1 向左浮动</div>
                <div id="box2">box2 向右浮动</div>
                <div id="empty" style="height: 100px"></div>
		</div>
		<div id="box3">box3</div>  
		这样会很不灵活,因为高度是固定的.  
	3) overflow:hidden

		overflow:hidden的含义是超出的部分要裁切隐藏,float的元素虽然不在普通流中,但是他是浮动在普通流之上的,可以把普通流元素+浮动元素想象成一个立方体。如果没有明确设定包含容器高度的情况下,它要计算内容的全部高度才能确定在什么位置hidden,这样浮动元素的高度就要被计算进去。这样包含容器就会被撑开,清除浮动。   
		
🤖🤖🤖position 定位:
	1 .static

	static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。
	
	2 .position: relative/absolute
	
	relative: 相对定位。
	
	相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
	
	注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。
	
	absolute: 绝对定位。
	
	定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
	
	重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。
	
	另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。

	#####总结 :参照物用relative相对定位,子元素用absolute绝对定位,并且保证相对定位参照物不会偏移就OK.
	
	3 .position:fixed
	
		先用大白话说一下这个的作用 : 
			你有没有看过有些页面的最上面会有一个固定导航栏, 不管你页面如何滚动,它总是在页面最上方.就那么静静的看着你,守护着你.
			也就是固定在页面的某个位置.
			对,就用position:fixed就好了.
			
		fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。

       在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。


🤖🤖🤖🤖🤖补充一些比较常用的 : 
	text-align  center 水平居中, right left, opacity 透明度.  是针对文本的
	
	height 高度 ,
	width 宽度 像素,百分比,
	line-height 垂直方向根据标签高度,
	color 字体颜色,
	font-size 字体大小,
	font-weight 字体加粗
	
	opcity: 0.5 透明度
    z-index: 层级顺序   
    overflow: hidden,auto
    hover : 鼠标悬浮到上面发生的状态(如:输入框)
	
posted @ 2017-10-22 19:19  uuuuuuu  阅读(143)  评论(0编辑  收藏  举报

最新免费视频:www.pythonav.com (冒着被砍死的风险)