CSS学习
<p># 1、什么是CSS</p><p>如何学习</p>
<p>1. CSS是什么<br>2. CSS怎么用(快速入门)<br>3. CSS选择器(重点+难点)<br>4. 美化网页(文字,阴影,超链接,列表,渐变....)<br>5. 盒子模型<br>6. 浮动<br>7. 定位<br>8. 网页动画(特效效果)</p>
<p> </p>
<p>## 1.1、什么是CSS</p>
<p>Cascading Style Sheet层叠级联样式表</p>
<p>CSS:表现(美化网页)</p>
<p>字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动....</p>
<p></p>
<p> </p>
<p>## 1.2、发展史</p>
<p>CSS1.0</p>
<p>CSS2.0 DIV(块) + CSS,HTML与CSS结构分离的思想,网页变得简单,SEO</p>
<p>CSS2.1 浮动,定位</p>
<p>CSS3.0 圆角,阴影,动画.....浏览器兼容~</p>
<p></p>
<p> </p>
<p>## 1.3、快速入门</p>
<p>style</p>
<p>**基本入门**</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <br> <style>\3c br> h1 { }</style><br><br></p>
<p></p><h1>我是标题</h1><p></p>
<p><br><br>```</p>
<p>建议使用这种规范</p>
<p></p>
<p> </p>
<p>css的优势</p>
<p>1. 内容和表现分离<br>2. 网页结构表现统一,可以实现复用<br>3. 样式十分丰富<br>4. 建议使用独立于html的css文件<br>5. 利用SEO,容易被搜索引擎收录!</p>
<p> </p>
<p>## 1.4、CSS的3种导入方式</p>
<p>```html<br><br><br><br> <br> <title>Title</title><br> <br> <style>\3c br> h1 { }</style><br> <br> <br><br></p>
<p></p>
<p><br></p><h1>我是标题</h1><p></p>
<p><br><br>```</p>
<p>拓展:外部样式两种写法</p>
<p>- 链接式:</p>
<p>html</p>
<p>```html<br><br><br>```</p>
<p>- 导入式:</p>
<p>@import 是 CSS2.1特有的</p>
<p>```html<br><br><style></style><br>```</p>
<p> </p>
<p># 2、选择器</p>
<p>> 作用:选择页面上的某一个或某一类元素</p>
<p> </p>
<p>## 2.1、基本选择器</p>
<p>1. 标签选择器:选择一类标签 标签{}</p>
<p> ```html<br> <br> <br> <br> <br> <title>Title</title><br> <style>\3c br> /*标签选择器,会选择到页面上所有的这个标签的元素*/\3c br> h1 { }
\3c br> p { }</style><br> <br> <br> <br> <br> </p><h1>学Java</h1><br> <h1>学Java</h1><br> <p>斯嘉学</p><br> <br> <br> <br> ```<br> <br>2. 类选择器class:选择所有class属性一致的标签,跨标签 .class名{}<p></p>
<p> ```html<br> <br> <br> <br> <br> <title>Title</title><br> <br> <style>\3c br> /*类选择器的格式 .class的名称{}\3c br> 好处,可以多个标签归类,是同一个class,可以复用\3c br> */\3c br> .sijia { }
\3c br> .ks { }</style><br> <br> <br> <br> <br> </p><h1 class="sijia">标题1</h1><br> <h1 class="ks">标题2</h1><br> <h1 class="sijia">标题3</h1><br> <br> <p class="sijia">P标签</p><br> <br> <br> <br> ```<p></p>
<p>3. id选择器:全局唯一! #id名{}</p>
<p> ```html<br> <br> <br> <br> <br> <title>Title</title><br> <br> <style>\3c br> /*id选择器 id必须全局保证唯一!\3c br> #id名称{}\3c br> 不遵循就近原则,固定的\3c br> id选择器>class选择器>标签选择器\3c br> */\3c br> #sijia { }
\3c br> .style1 { }</style><br> <br> <br> <br> </p><h1 id="sijia">标题1</h1><br> <h1 class="style1">标题2</h1><br> <h1 class="style1">标题3</h1><br> <h1>标题4</h1><br> <h1>标题5</h1><br> <br> <br> <br> ```<p></p>
<p> </p>
<p>优先据:id > class > 标签</p>
<p> </p>
<p>## 2.2、层次选择器</p>
<p>1. 后代选择器:在某个元素的后面 祖爷爷 爷爷 爸爸 你</p>
<p> ```css<br> /*后代选择器*/<br> body p{<br> background: red;<br> }<br> ```</p>
<p>2. 子选择器:一代 儿子</p>
<p> ```css<br> /*子选择器*/<br> body>p{<br> background: #009688;<br> }<br> ```</p>
<p>3. 相邻兄弟选择器:同辈</p>
<p> ```css<br> /*相邻兄弟选择器:只有一个(向下)*/<br> .active + p{<br> background: aqua;<br> }<br> ```</p>
<p>4. 通用选择器</p>
<p> ```css<br> /*通用兄弟选择器,当前选中元素的向下的所有兄弟*/<br> .active~p{<br> background: yellow;<br> }<br> ```</p>
<p> </p>
<p>## 2.3、结构伪类选择器</p>
<p> </p>
<p>```css<br><br><br><br> <br> <title>Title</title><br> <br> <style>\3c br> /*ul的第一个子元素*/\3c br> ul li:first-child { }
\3c /p>
\3c p> /*ul的最后一个子元素*/\3c br> ul li:last-child { }
\3c /p>
\3c p> /*选中p1:定位到父元素,选择当前的第一个元素\3c br> 选择当前p元素的父级元素,选中父级元素的第一个,并且是当前元素才生效!\3c br> */\3c br> p:nth-child(1) { }
\3c /p>
\3c p> /*选中父元素,下的p元素的第二个,类型*/\3c br> p:nth-of-type(2) { }</style><br><br><br><br><br></p><p>p1</p><br><p>p2</p><br><p>p3</p><br><ul><br> <li>li1</li><br> <li>li2</li><br> <li>li3</li><br></ul><p></p>
<p><br><br>```</p>
<p></p>
<p>## 2.4、属性选择器(常用)</p>
<p>id + class结合~</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <style>\3c /p>
\3c p> .demo a { }
\3c /p>
\3c p> /* 属性名,属性名 = 属性值(正则)\3c br> = 绝对等于\3c br> *= 包含这个元素\3c br> ^= 以这个开头\3c br> $= 以这个结尾\3c br> */\3c br> /*存在id属性的元素 a[]{}*/\3c br> /*a{*/\3c br> /* background: yellow;*/\3c br> /*}*/\3c br> /*id= fiast的元素*/\3c br> /*a{*/\3c br> /* background: yellow;*/\3c br> /*}*/\3c br> /*class 中有 links的元素*/\3c br> /*a{*/\3c br> /* background: yellow;*/\3c br> /*}*/\3c /p>
\3c p> /*选中heref中以http开头的元素*/\3c br> /*a{*/\3c br> /* background: red;*/\3c br> /*}*/\3c /p>
\3c p> a { }</style></p>
<p><br></p>
<p></p><p class="demo"></p>
<p> 1<br> 2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br> 10</p>
<p><br></p><p></p>
<p><br><br><br>```</p>
<p></p>
<p>```<br>=<br>*=<br>^=<br>$=<br>```</p>
<p> </p>
<p># 3、美化网页元素</p>
<p>## 3.1、为什么要美化网页</p>
<p>1、有效的传递页面信息</p>
<p>2、美化网页,页面漂亮,才能吸引用户</p>
<p>3、凸显页面的主题</p>
<p>4、提高用户的体验</p>
<p> </p>
<p>span标签:重点要突出的字,使用 span 套起来</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <style>\3c br> #title1 { }</style></p>
<p><br></p>
<p>欢迎学习 <span id="title1">Java</span></p>
<p><br><br>```</p>
<p>## 3.2、字体样式</p>
<p> </p>
<p>```html<br><br><style>\3c br> boby { }
\3c br> h1 { }
\3c br> .p1 { }</style><br>```</p>
<p>## 3.3、文本样式</p>
<p>1、颜色 color rgb rgba</p>
<p>2、**文本对齐方式 text-align = center**</p>
<p>3、**首行缩进 text-indent: 2em**</p>
<p>4、**行高 line-height: 单行文字上下居中!** line-height=height</p>
<p>5、装饰 text-decoration</p>
<p>6、文本图片水平对齐:vertical-aling:middle;</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <br> <style>\3c br> h1 { }
\3c br> .p1 { }
\3c br> .p3 { }
\3c br> /*下划线*/\3c br> .l1 { }
\3c br> /*中划线*/\3c br> .l2 { }
\3c br> /*上划线*/\3c br> .l3 { }
\3c br> /*超链接去下划线*/\3c br> a { }
\3c br> /*\3c !--*/\3c br> /*水平对齐~ 参照物,a,b*/\3c br> /*-->*/\3c br> img,span { }</style></p>
<p><br></p>
<p><br></p><p><br> <img src="images/a.png"><br> <span>光伏发电和规范化风格和德国</span><br></p><p></p>
<p><br>123</p>
<p></p><p class="l1">123123123</p><br><p class="l2">123123123</p><br><p class="l3">123123123</p><p></p>
<p> </p>
<p><br></p><h1>故事介绍</h1><br><p class="p1">平静安详的元泱境界,每隔333年,总会有一个神秘而恐怖的异常生物重生,它就是魁拔!魁拔的每一次出现,都会给元泱境界带来巨大的灾难!即便是天界的神族,也在劫难逃。在天地两界各种力量的全力打击下,魁拔一次次被消灭,但又总是按333年的周期重新出现。魁拔纪元1664年,天神经过精确测算后,在魁拔苏醒前一刻对其进行毁灭性打击。但谁都没有想到,由于一个差错导致新一代魁拔成功地逃脱了致命一击。很快,天界魁拔司和地界神圣联盟均探测到了魁拔依然生还的迹象。因此,找到魁拔,彻底消灭魁拔,再一次成了各地热血勇士的终极目标。<br></p><br><p>在偏远的兽国窝窝乡,蛮大人和蛮吉每天为取得象征成功和光荣的妖侠纹耀而刻苦修炼,却把他们生活的村庄搅得鸡犬不宁。村民们绞尽脑汁把他们赶走。一天,消灭魁拔的征兵令突然传到窝窝乡,村长趁机怂恿蛮大人和蛮吉从军参战。然而,在这个一切都凭纹耀说话的世界,仅凭蛮大人现有的一块冒牌纹耀,不要说参军,就连住店的资格都没有。受尽歧视的蛮吉和蛮大人决定,混上那艘即将启程去消灭魁拔的巨型战舰,直接挑战魁拔,用热血换取至高的荣誉。<br></p><p></p>
<p></p><p class="p3">Bill is a math teacher.In the morning,he usually goes to work by subway.After lunch,he reads neawspapers.And sometimes,he goes home at 5:30.In the evening,he always waches TV.At 10:00,he goes to bed.<br></p><p></p>
<p><br><br><br>```</p>
<p> </p>
<p>## 3.4、阴影</p>
<p>```css<br>/*text-shadow: 阴影颜色,水平偏移,垂直偏移,阴影半径*/<br>#price{<br> text-shadow: #1fccdc 10px -10px 2px;<br>}<br>```</p>
<p> </p>
<p>## 3.5、超链接伪类</p>
<p>正常情况下,a,a:hover</p>
<p>```css<br>/*默认的颜色*/<br>a{<br> text-decoration: none;<br> color: #000000;<br>}<br>/*鼠标悬浮的状态(只需要记住:hover)*/<br>a:hover{<br> color: #009688;<br> font-size: 50px;<br>}<br>```</p>
<p> </p>
<p>## 3.6、列表</p>
<p>```css<br>/*ui li*/<br>/*<br>list-style:<br>none 去掉圆点<br>circle空心圆<br>decimal 数字<br>square正方形<br> */<br>/*ul{*/<br>/* background: whitesmoke;*/<br>/*}*/</p>
<p>ul li{<br> height: 30px;<br> list-style: none;<br> text-indent: 1em;<br>}<br>```</p>
<p> </p>
<p>## 3.7、背景</p>
<p>背景颜色</p>
<p>背景图片</p>
<p>```css<br><style>\3c br>div { }
\3c br>.div1 { }
\3c br>.div2 { }
\3c br>.div3 { }</style><br>```</p>
<p>练习:</p>
<p></p>
<p>## 3.8、渐变</p>
<p>```css<br>background-color: #85FFBD;<br>background-image: linear-gradient(45deg, #85FFBD 0%, #FFFB7D 100%);<br>```</p>
<p> </p>
<p># 4、盒子模型</p>
<p>## 4.1、什么是盒子模型</p>
<p></p>
<p>margin:外边距</p>
<p>padding:内边距</p>
<p>boeder:边框</p>
<p> </p>
<p>## 4.2、边框</p>
<p>1、边框的粗细</p>
<p>2、边框的样式</p>
<p>3、边框的颜色</p>
<p>```css<br><style>\3c br>/*body总有一个默认的外边距margin: 0,常见操作*/\3c br>/*h1,ul,li,a,body{*/\3c br>/* margin: 0;*/\3c br>/*}*/\3c br>/*border:粗细,样式,颜色*/\3c br>#box { }
\3c br>h2 { }
\3c br>form { }
\3c /p>
\3c p>div:nth-of-type(1) input { }
\3c br>div:nth-of-type(2) input { }
\3c br>div:nth-of-type(3) input { }</style><br>```</p>
<p> </p>
<p>## 4.3、内外边距</p>
<p>```css<br><br><br><br> <br> <title>Title</title></p>
<p> <br> <style>\3c /p>
\3c p> #box { }
\3c br> /*\3c br> 顺时针旋转\3c br> margin: 0\3c br> margin: 0 1px\3c br> margin: 0 1px 2px 3px\3c br> */\3c br> h2 { }
\3c br> form { }
\3c /p>
\3c p> input { }
\3c br> div:nth-of-type(1) { }</style></p>
<p><br></p>
<p></p><div id="box"><br> <h2>会员登录</h2><br> <form action="#"><br> <div><br> <span>用户名:</span><br> <input type="text"><br> </div><br> <div><br> <span>密码:</span><br> <input type="password"><br> </div><br> <div><br> <span>邮箱:</span><br> <input type="text"><br> </div><br> </form><br></div><p></p>
<p><br><br>```</p>
<p> </p>
<p>盒子的计算方式:你这个元素到底多大</p>
<p></p>
<p>margin + border + padding + 内容宽度</p>
<p> </p>
<p>## 4.4、圆角边框</p>
<p>4个角</p>
<p>```html<br><style>\3c br>div { }</style><br>```</p>
<p> </p>
<p>## 4.5、盒子阴影</p>
<p>```html<br><br><br><br> <br> <title>Title</title><br> <br> <style>\3c br> img { }</style></p>
<p><br><br> </p><div style="width: 500px; display: block; text-align: center"><br> <img src="images/tx.png"><br> </div><p></p>
<p><br><br>```</p>
<p> </p>
<p># 5、浮动</p>
<p>## 5.1、标准文档流</p>
<p> </p>
<p>块级元素:独占一行</p>
<p>```<br>h1~h6 p div 列表...<br>```</p>
<p> </p>
<p>行内元素:不独占一行</p>
<p>```<br>span a img strong...<br>```</p>
<p>行内元素 可以被包含在块级元素中,反之,则不可以</p>
<p> </p>
<p>## 5.2、dispaly</p>
<p>```html<br><br><style>\3c br> div { }
\3c br> span { }</style><br>```</p>
<p>1、这个也是一种实现行内元素排列的方式,但是我们很多情况都是用float</p>
<p>## 5.3、float</p>
<p>1、左右浮动 float</p>
<p>```css<br>div{<br> margin:10px;<br> padding:5px;<br>}<br>#father{<br> border:1px #000 sold;<br>}<br>.lsyer01{<br> border:1px #F00 dashed;<br> dispaly:inline-block;<br> float:righr;<br>}<br>.lsyer02{<br> border:1px #00F dashed;<br> dispaly:inline-block;<br> float:righr;<br>}<br>.lsyer03{<br> border:1px #660 dashed;<br> dispaly:inline-block;<br> float:righr;<br>}<br>.lsyer04{<br> border:1px #666 dashed;<br> font-size:12px;<br> line-height:23px;<br> dispaly:inline-block;<br> float:righr;<br>}<br>```</p>
<p> </p>
<p>## 5.4、父级边框塌陷的问题</p>
<p>clear</p>
<p>```csss<br>/*<br>clear: right; 右侧不允许有浮动元素<br>clear: left; 左侧不允许有浮动元素<br>clear: both; 两侧不允许有浮动元素<br>clear: none; <br>*/<br>```</p>
<p> </p>
<p>解决方案:</p>
<p>1、增加父级元素的高度~</p>
<p>```css<br>#father{<br> border: 1px #000 solid;<br> height:800px<br>}<br>```</p>
<p>2、增加一个空div标签,清除浮动</p>
<p>```css<br></p><div class="clear"></div><p></p>
<p>.clear{<br> clear: both;<br> marin: 0;<br> padding: 0;<br>}<br>```</p>
<p>3、overflow</p>
<p>```<br>在父级元素中增加一个 overflow: hidden;<br>```</p>
<p>4、父级添加一个伪类:after</p>
<p>```css<br>#father:after{<br> content: '';<br> dispaly: block;<br> clear:both;<br>}<br>```</p>
<p> </p>
<p>**小结:**</p>
<p>1. 浮动元素后面增加空div</p>
<p> 简单,代码中尽量避免div</p>
<p>2. 设置父元素高度</p>
<p> 简单,元素假设有了固定的高度,就会被限制</p>
<p>3. overflow</p>
<p> 简单,下拉的一些场景避免使用</p>
<p>4. 父级添加一个伪类:after(推荐)</p>
<p> 写法稍微复杂一点,但是没有副作用,推荐使用。</p>
<p> </p>
<p>## 5.5、对比</p>
<p>* display</p>
<p>方向不可以控制</p>
<p>* float</p>
<p>浮动起来会脱离标准文档流,所以要解决父级边框塌陷的问题。</p>
<p> </p>
<p># 6、定位</p>
<p>## 6.1、相对定位</p>
<p>```html<br><br><br><br> <br> <title>Title</title><br> <br> <style>\3c br> body { }
\3c br> div { }
\3c br> #father { }
\3c br> #first { }
\3c br> #second { }
\3c br> #third { }</style></p>
<p><br></p>
<p><br></p><div id="father"><br> <div id="first">第一个盒子</div><br> <div id="second">第二个盒子</div><br> <div id="third">第三个盒子</div><br></div><p></p>
<p><br><br>```</p>
<p>相对定位:postion: relative</p>
<p>相对于原来的位置,进行指定的偏移,相对定位的话,它任然在标准文档流中,原来的位置会被保留</p>
<p>```css<br>top: -20px;<br>left: 20px;<br>bottom: -10px;<br>right: 20px;<br>```</p>
<p>### 6.1.1、练习</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <style>\3c br> #box { }
\3c br> a { }
\3c br> a:hover { }
\3c br> .lj2,.lj4 { }
\3c br> .lj5 { }</style></p>
<p><br></p>
<p></p><div id="box"><br> 百度<br> 博客<br> 山河<br> QQ音乐<br> 网易云<br></div><p></p>
<p><br><br>```</p>
<p>效果图:</p>
<p></p>
<p> </p>
<p>## 6.2、绝对定位</p>
<p>定位:基于xxx定位,上下左右</p>
<p>1、没有父级元素定位的前提下,相对于浏览器定位</p>
<p>2、假设父级元素存在定位,我们通常会相对于父级元素进行偏移</p>
<p>3、在父级元素范围内移动</p>
<p>相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <style>\3c br> div { }
\3c br> #father { }
\3c br> #first { }
\3c br> #second { }
\3c br> #third { }</style></p>
<p><br></p>
<p><br></p><div id="father"><br> <div id="first">第一个盒子</div><br> <div id="second">第二个盒子</div><br> <div id="third">第三个盒子</div><br></div><p></p>
<p><br><br>```</p>
<p> </p>
<p> </p>
<p>## 6.3、固定定位 fixed</p>
<p>```html<br><br><br><br> <br> <title>Title</title></p>
<p> <style>\3c br> body { }
\3c br> div:nth-of-type(1) { }
\3c br> div:nth-of-type(2) { }</style></p>
<p><br></p>
<p></p><div>div1</div><br><div>div2</div><p></p>
<p><br><br>```</p>
<p> </p>
<p>## 6.4、z-index</p>
<p></p>
<p> </p>
<p>图层~</p>
<p>z-index:默认是0,最高无限~999</p>
<p>```html<br><br><br><br> <br> <title>Title</title><br> <br><br></p>
<p></p><div id="content"><br> <ul><br> <li><img src="images/bg.png"></li><br> <li class="tipText">害怕区一姐,找欣小萌</li><br> <li class="tipBg"></li><br> <li>时间:2031-01-01</li><br> <li>地点:火星一号基地</li><br> </ul><br></div><p></p>
<p><br><br>```</p>
<p> </p>
<p> opacity: 0.5;/*背景透明度*/</p>
<p> </p>
<p>```css<br>#content{<br> width: 380px;<br> padding: 0px;<br> margin: 0px;<br> overflow: hidden;<br> font-size: 12px;<br> line-height: 25px;<br> border: 1px solid #009688;<br>}<br>ul,li{<br> padding: 0px;<br> margin: 0px;<br> list-style: none;<br>}<br>/*父级元素相对定位*/<br>#content ui{<br> position: relative;<br>}<br>.tipText,.tipBg{<br> position: absolute;<br> width: 380px;<br> height: 25px;<br> top: 223px;<br>}<br>.tipText{<br> /*z-index: 999;*/<br> color: white;<br>}<br>.tipBg{<br> background: black;<br> opacity: 0.5;/*背景透明度*/<br> filter: opacity(0.5);/*背景透明度*/<br>}<br>```</p>
<p> </p>
<p> </p>
<p># 7、动画</p>
<p> </p>
<p># 8、总结</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p><br><br>
来源:https://www.cnblogs.com/sijiawork/p/15376470.html
頁:
[1]