黑马程序员技术交流社区
标题:
技术贴
[打印本页]
作者:
gitvvvvvv
时间:
2019-3-18 16:28
标题:
技术贴
<h1 >CSS样式表:</h1>
<h3>1、行内式样式表:</h3>
在标签中输入样式<br />
<h1 style="color: pink; font-size: 100px;" >行内样式表</h1>
缺点:并未实现结构与样式分离。
<h3>2、内部样式表</h3>
在head标签之中放入样式;理论上是可以放在html之中的任何地方<br />
type="text/css"在HTML5之前可以省略<br />
《style》<br />
p {<br />
color: pink;<br />
font-size: 160px<br />
}<br />
《/style》<br />
部分实现结构样式分离
<p >内部样式表</p>
只对当前的页面生效,并没实现结构样式完全分离
<h3>3、外部样式表</h3>
新建一个.css文件<br />
在需要样式的.html页面的《head》标签中添加<br />
《link rel="stylesheet" type="text/css" href=".css文件地址"》<br />
type="text/css"在HTML5之前可以省略<br />
<h4>外部样式表</h4>
彻底实现结构与样式分离,可以节约代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css高级技巧</title>
<style type="text/css">
body {
height: 3000px;
}
text
input {
outline: none;
}
.box {
position: relative;
width: 220px;
height: 220px;
}
.die {
display: none;
position: absolute;
top: 0;
left: 0;
width: 220px;
height: 220px;
background: rgba(0,0,0,.3) url(images/arr.png) no-repeat center center;
}
a:hover .die {
display: block;
}
.fen {
display: none;
}
.box2 a:hover .fen{
display: block;
}
textarea {
width: 60px;
height: 60px;
resize: none;
vertical-align: middle;
}
.shenglv {
width: 50px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border: 1px solid #f0f;
}
</style>
</head>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS布局</title>
<style type="text/css">
* {
font-size: 20px;
}
h2 {
font-size: 25px;
}
h1 {
font-size: 30px;
}
.one {
width: 100px;
height: 100px;
background-color: orange;
float: left;
}
.two{
width: 200px;
height: 200px;
background-color: skyblue;
}
.c {
width: 400px;
height: 400px;
}
.ca,
.cb {
width: 200px;
height: 200px;
float: left;
background-color: skyblue;
}
.im {
font-weight: 700;
font-size: 20px;
}
.box {
width: 300px;
height: 300px;
background-color: skyblue;
}
.a1 {
width: 200px;
height: 200px;
background: orange;
margin: 30px;
position: relative;
top: 40px;
left: 40px;
}
.a2 {
width: 200px;
height: 200px;
background-color: orange;
}
.a3 {
background-color: skyblue;
position: relative;
top: 100px;
left: 100px;
}
.b1 {
width: 200px;
height: 200px;
background-color: skyblue;
position: absolute;
top: 100px;
left: 100px;
}
.dwbox {
width: 400px;
height: 400px;
background-color: orange;
position: relative;
}
.d {
position: fixed;
top: 300px;
right: 0;
width: 30px;
height: 30px;
background-color: green;
}
.dwbox2 {
position: relative;
width: 400px;
height: 400px;
background-color: skyblue;
}
.tuo1 {
position: relative;
width: 200px;
height: 200px;
background-color: orange;
}
.tuo2 {
position: absolute;
left: 50%;
top: 50%;
width: 100px;
height: 100px;
margin-top: -25px;
margin-left: -25px;
background-color: skyblue;
}
.t1 {
position: absolute;
left: 0;
top: 0;
z-index: 2;
width: 100px;
height: 100px;
background-color: skyblue;
}
.t2 {
position: absolute;
left: 50px;
top: 50px;
z-index: 1;
width: 100px;
height: 100px;
background-color: red;
}
.t3 {
position: absolute;
left: 100px;
top: 100px;
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head>
<body>
<h1>CSS布局</h1>
<ol>
<li>
<h2>CSS布局的三种机制</h2>
<ol>
<li>
<h2>普通流</h2>
块元素独占一行,自上而下<br />
行内元素一行多个,从左到右
</li>
<li>
<h2>浮动</h2>
<ol>
<li>1.脱离标准普通流的控制</li>
<li>2.移动到指定位置</li>
</ol>
folat:left(左对齐)、right(右对齐)<br />
<ol>
<li>可以实现左、右对齐</li>
<li>实现图片文字环绕</li>
<li>大撒旦</li>
</ol>
ps:凡是浮动的元素,文字都会环绕。<br />
<h3>folat(浮漏特)</h3>
<ol>
<li>
<h2>浮漏特之浮</h2>
设置了浮动的元素,会脱离标准流,漂浮在普通流上面,不占字符。<br />
<div class="one"></div>
<div class="two"></div>
</li>
<li>
<h2>浮漏特之漏</h2>
浮动的元素脱离标准流并且在标准流中不再占有位置
</li>
<li>
<h2>浮漏特之特</h2>
float属性会改变元素的display属性。<br />
任何元素都可以浮动。浮动元素会变成类似于行内块元素<br />
浮动的子元素只能参考父元素的内容区(border和pandding内部)对齐;<br />
<div class="c">
<div class="ca">folat</div>
<div class="cb">folat</div>
</div>
浮动只能影响后面的标准流元素
</li>
<li>
<h2>清除浮动</h2>
书写方式:clear:值;<br />
left:清除左对齐浮动;<br />
right:清除右对齐浮动;<br />
both:同时清除所有对齐浮动。<br />
<ol>
<li>
额外标签法<br />
在最后一个浮动的标签后面添加一个空标签,<br />
.空标签 {<br />
clear:both;<br />
}<br />
ps:不推荐!!!!
</li>
<li>
为父级元素添加overflow:hidden;即可实现。
</li>
<li>
after伪元素;<br />
.clearfix:after {<br />
content:"";<br />
display:bolck;<br />
height:0;<br />
clear:both;<br />
visitility:hidden;
}<br />
.clearfix {<br />
*zoom:1;<br />
}
</li>
<li>
双伪元素清除浮动<br />
.clearfix:before<br />
.clearfix:after {<br />
content:"";<br />
display:table;<br />
}<br />
.clearfix:after {<br />
clear:both;<br />
}<br />
clearfix {<br />
*zoom:1;<br />
}
</li>
</ol>
</ol>
</li>
<li>
<h2>定位</h2>
将盒子定位到某一个位置;<br />
布局高度:定位>浮动>标准流;<br />
定位=定位模式+边偏移<br />
边偏移:通过方位名词来进行移动;<br />
定位的盒子有了边偏移才有了价值。
<ol>
定位模式:
<li><h2>static:静态定位</h2>
取消定位
</li>
<li><h2>relative:相对定位</h2>
相对于自己原本的位置进行移动;
<div class="box">
<div class="a1"></div>
</div>
移动以后元素原来的位置仍旧占有
<div class="a2"></div>
<div class="a2 a3"></div>
<div class="a2"></div>
</li>
<li><h2>absolute:绝对定位</h2>
如果父元素没有定位以浏览器进行定位。
<div class="box">
<div class="b1"></div>
</div>
如果父元素有定位,以父元素的进行移动。
<div class="dwbox">
<div class="b1"></div>
</div>
移动以后元素原来的位置不会占有位置,完全托标。
<div class="dwbox2">
<div class="a2"></div>
<div class="a2 b1"></div>
<div class="a2"></div>
</div>
ps:绝对定位若上一级没有定位,则会查看上一级有无有定位。再以具有定位的元素来进行定位<br />
绝对定位口诀:子绝父相
</li>
<li><h2>fixed:固定定位</h2>
完全脱标,只认浏览器可视窗口。(完全不占位置,)
<div class="d"></div>
</li>
</ol>
</li>
</ol>
</li>
<li><h2>拓展</h2></li>
<ol>
<li>
<h2>定位居中</h2>
使用过绝对定位、固定定位无法使用margin进行自动居中。<br />
绝对定位的水平垂直居中<br />
position:absolute;<br />
left:50%;(50%的父元素宽度)<br />
margin-left:负子元素的50%宽度;<br />
<div class="tuo1">
<div class="tuo2"></div>
</div>
</li>
<li>
<h2>堆叠顺序:z-index</h2>
只有使用过相对定位、绝对定位、固定定位才能使用Z-index。<br />
z-index:值(正负整数)值越大,优先级越高。
<div class="tuo1">
<div class="t1"></div>
<div class="t2"></div>
<div class="t3"></div>
</div>
</li>
<li><h2>绝对定位和固定定位</h2>
使用绝对定位和固定定位也可以改变元素的display属性,变成类似于行内块元素。
设置绝对定位和固定定位、浮动的元素,都不是引发外边距的合并。
</li>
</ol>
</ol>
<h1>总结</h1>
<img src="zongjie.png">
<img src="123.png"><br />
布局顺序:
<ol class="im">
<li>先分析结构确定版心宽度 初始化页面的CSS默认样式</li>
<li>先分析行模块 再分析列模块</li>
<li>书写结构和样式代码</li>
</ol>
</body>
</html>
<body>
<h1>css高级技巧</h1>
<ol>
<li>
<h2>元素的显示与隐藏</h2>
<ol>
<li>
<h2>display</h2>
none:隐藏元素;(不再占有位置)
bolck:显示元素;
<div class="box">
<a href="#">
<div class="die"></div>
<img src="images/3.jpg" alt=""></a>
</div>
<div class="box2">
<ul>
<li>
<a href="#">首页
<ul class="fen">
<li >1123</li>
<li>1123</li>
<li>1123</li>
</ul>
</a>
</li>
<li>123</li>
<li>14123</li>
<li>12312</li>
</ul>
</div>
</li>
<li>
<h2>visibility</h2>
visible:显示元素;
hidden:隐藏元素;(仍占有位置)
</li>
<li>
<h2>overflow</h2>
hidden:超出元素部分隐藏;
visible:不隐藏超出元素;
</li>
</ol>
</li>
<li>
<h2>css界面样式</h2>
<ol>
<li>
<h2>cursor:鼠标样式</h2>
1.default:默认小白鼠标;<br />
2.pointer:变成人手图标;<br />
3.move:十字移动图标;<br />
4.text:文本默认图标;<br />
5.not-allowed:禁止图标。
</li>
<li>
<h2>outline:轮廓线</h2>
平时直接取消轮廓线<br />
书写方式:<br />
input {<br />
outline:none;<br />
}
</li>
<li>
<h2>resize:防止拖拽文本域</h2>
取消拖拽功能;
书写方式:
textarea {
resize:none;
}
</li>
</ol>
</li>
<li>
<h2>vertical-align垂直对齐</h2>
只能设置给行内元素和行内块元素;<br />
无法给块级元素设置。<br />
baseline:基线对齐(默认);<br />
middle:中线对齐(居中垂直对齐);<br />
top:顶线对齐(上对齐);<br />
bottom:底线对齐(下对齐)<br />
<textarea></textarea>dasdsadsa
取消图片下方的留空:<br />
1.只要用除了baseline以外的vertical-align属性就可以取消了<br />
2或者使用display:block 将图片转成块元素也可以取消留空。
</li>
<li>
<h2>溢出文字省略号代替显示</h2>
white-space:normal(自动换行,默认属性)、nowrap(强制一行内显示所有文本)<br />
text-overflow: clip(自动裁剪,默认属性)、ellipsis(超出部分的文字以省略号替代)<br />
书写方式:<br />
{<br />
white-space:nowrap;<br />
overflow:hidden;<br />
text-overflow:ellipsis;<br />
}<br />
<div class="shenglv">你好骚哦,为什么穿着品如的衣服</div>
</li>
<li>
<h2>精灵图技术(sprite)</h2>
为了有效的减少服务器的接受次数和发送请求次数,提高网站效率。
</li>
</ol>
</body>
</html>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2