div+css入门与实战演练

div+css入门与实战演练

韩顺平PHP课程之Lesson2

参考站点:蝉翼花园  开源之祖  php开源大全

参考书籍:别具光芒

参考资料:css2.0.chm

本节要点:div+css基本特点、css使用的必要性、选择器使用与探讨、块元素和行内元素、css中的盒子模型、浮动float、定位

详细内容:

1.div+css引入(css Cascading Style Sheets 层叠样式表)
传统页面采用table来布局,有一些缺点,表现在:
a.显示样式和数据绑定在一起
b.布局的时候,灵活度不高.
c.一个页面可能有大量的table元素,本来很简单的工作,可能很费劲,出现代码冗余。
d.增加带宽,比如减少新浪网一个页面的200字节,1个月可以减少200字节*2000000(访问量)*30(时间)带宽.
e.搜索引擎不喜欢表格布局
优点:
a.理解比较简单
b.不同的浏览器看到的效果一般是相同
c.显示数据还是很好的
为了解决table的以上缺点,引入了div+css.
div+css的基本思想:数据和样式分离。div用来存放需要显示的数据(文字、图表),css用来指定怎样显示,从而做到数据和显示相互的效果.css可以使用在各种文件如php、jsp、aps.

div+css页面布局体验用例代码及效果如下:

//my.css

  1. .style1  
  2. {  
  3.       width:300px;/*指定宽度*/  
  4.       height:400px;/*要写分号*/  
  5.       background-color:silver;  
  6.       border:1px solid red;  
  7.       margin-left:200px;  
  8.       margin-top:100px;  
  9.       padding-left:20px;  
  10.       padding-top:10px;  
  11. }  
  12. .style1 table  
  13. {  
  14.   
  15.     border:1px solid blue;  
  16.     background-color:pink;  
  17. }  
.style1
{
      width:300px;/*指定宽度*/
      height:400px;/*要写分号*/
      background-color:silver;
      border:1px solid red;
      margin-left:200px;
      margin-top:100px;
      padding-left:20px;
      padding-top:10px;
}
.style1 table
{

    border:1px solid blue;
    background-color:pink;
}
//demo1.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title> css体验 </title>  
  5.  </head>  
  6.  <!--引入css 可以使用url指定css-->  
  7. <link rel=stylesheet href="my.css" type="text/css"/>  
  8.  <body>  
  9.  <div class="style1"><!--class指定关联的css文件-->  
  10.   <img src="images/cartoon.gif"/>  
  11.   <table>  
  12.   <tr>  
  13.   <td>div中表格</td>  
  14.   <td>div中表格</td>  
  15.   </tr>  
  16.   <tr>  
  17.   <td>div中表格</td>  
  18.   <td>div中表格</td>  
  19.   </tr>  
  20.   </table>  
  21.   </div>  
  22.  </body>  
  23. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> css体验 </title>
 </head>
 <!--引入css 可以使用url指定css-->
<link rel=stylesheet href="my.css" type="text/css"/>
 <body>
 <div class="style1"><!--class指定关联的css文件-->
  <img src="images/cartoon.gif"/>
  <table>
  <tr>
  <td>div中表格</td>
  <td>div中表格</td>
  </tr>
  <tr>
  <td>div中表格</td>
  <td>div中表格</td>
  </tr>
  </table>
  </div>
 </body>
</html>
运行效果如下图所示:


2.网页设计的三个时期
要深刻理解div+css的优越性,不得不提网页设计的三个时期table(内容和样式),table+css(table布局,css指定外观),div+css(div放内容,css指定样式).
3.css使用的必要性
(1)css使用的基本语法
选择器{
   属性1:属性值;
   属性2:属性值;
...
}

(2)滤镜技术 filter

滤镜技术应用实例的代码及效果如下:

//demo3.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.  <!--直接嵌入css文件(内联css文件)-->  
  5.  <style type="text/css">  
  6.    a:link img{  
  7.    filter:gray;//  
  8.    }  
  9.    a:hover img{  
  10.    filter:"";  
  11.    }  
  12.  </style>  
  13.   <title> 滤镜技术</title>  
  14.  </head>  
  15.  <body>  
  16. <a href="#"> <img src="images/cartoon2.gif" /></a>  
  17. <a href="#"><img src="images/cartoon3.gif"/></a>  
  18. <a href="#"><img src="images/cartoon4.gif"/></a>  
  19. <a href="#"><img src="images/cartoon5.gif"/></a>  
  20.  </body>  
  21. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <!--直接嵌入css文件(内联css文件)-->
 <style type="text/css">
   a:link img{
   filter:gray;//
   }
   a:hover img{
   filter:"";
   }
 </style>
  <title> 滤镜技术</title>
 </head>
 <body>
<a href="#"> <img src="images/cartoon2.gif" /></a>
<a href="#"><img src="images/cartoon3.gif"/></a>
<a href="#"><img src="images/cartoon4.gif"/></a>
<a href="#"><img src="images/cartoon5.gif"/></a>
 </body>
</html>

运行效果如下图所示:


4.css常用的四种选择器
a.类选择器 class
.类选择器{   /*注意前面的这个点 不可少*/
   属性1:属性值;
   属性2:属性值;
...
}
b.id选择器
#id选择器{
   属性1:属性值;
   属性2:属性值;
...
}
c.html元素选择器
某个html元素{
属性1:属性值;
   属性2:属性值;
...
}
只要是html元素的一种即可以。
css解决p段落两种样式:
p.cls1{
color:blue;
font-size:30px;
}
p.cls2{
color:green;
font-size:20px;
}
其他的元素应用两种样式也可以此类推。
d.通配符选择器
*{
   /*margin-top:0px;
   margin-left:0px;*/
   margin:10px 30px 40px 1px;
}
margin提供四个值,则将按上右下左的顺时针赋值。
margin提供一个值代表上右下左;如果是两个值(上下、左右)
四个选择器的优先级:id选择器>class选择器>html选择器>通配符选择器

ID选择器和class选择器的使用:ID选择器的复用性较低而优先级高,所以如果某个样式只是给某个指定html元素使用,则选择id选择器。如果一个样式是给多个html元素使用,则应当class选择器.

选择器理解对应用例的代码及效果如下:

//selector.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title>选择器使用</title>  
  5.  </head>  
  6. <link rel="stylesheet" type="text/css" href="selector.css">  
  7.  <body>选择器的使用  
  8.   <span class="s1" id="news_special">新闻一</span>  
  9.   <span class="s1">新闻二</span>  
  10.   <span class="s1 cls1">新闻三</span>  
  11.   <span class="s1">新闻四</span>  
  12.   <span class="s1">新闻五</span><br/><br/>  
  13.   <span id="id1">这是一则<span>非常<span><a href="http://www.baidu.com">连接到百度</a>重要</span></span>的新闻</span><br/>  
  14.   <!--超链接控制-->  
  15.   <a href="http://www.baidu.com">连接到百度</a>  
  16.   <p class="cls1">Hello world!</p>  
  17.   <p class="cls2">Hello world!</p>  
  18.  </body>  
  19. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>选择器使用</title>
 </head>
<link rel="stylesheet" type="text/css" href="selector.css">
 <body>选择器的使用
  <span class="s1" id="news_special">新闻一</span>
  <span class="s1">新闻二</span>
  <span class="s1 cls1">新闻三</span>
  <span class="s1">新闻四</span>
  <span class="s1">新闻五</span><br/><br/>
  <span id="id1">这是一则<span>非常<span><a href="http://www.baidu.com">连接到百度</a>重要</span></span>的新闻</span><br/>
  <!--超链接控制-->
  <a href="http://www.baidu.com">连接到百度</a>
  <p class="cls1">Hello world!</p>
  <p class="cls2">Hello world!</p>
 </body>
</html>
//selector.css

  1. /*class类选择器*/  
  2. .s1{  
  3.   background-color:pink;  
  4.   font-weight:bold;  
  5.   font-size:16px;  
  6.   color:black;  
  7. }  
  8. /*id 选择器使用*/  
  9. #id1{  
  10.    background-color:silver;  
  11.   font-size:40px;  
  12.   color:black;  
  13. }  
  14. /*html选择器使用 优先级低*/  
  15. body{  
  16.    color:orange;  
  17. }  
  18. /*通配符选择器使用*/  
  19. /*  
  20. margin提供四个值,则将按上右下左的顺时针赋值。  
  21. margin提供一个值代表上右下左;如果是两个值(上下、左右)*/  
  22. *{  
  23.    /*margin-top:0px;  
  24.    margin-left:0px;*/  
  25.    margin:0px;  
  26.    padding:opx;  
  27.    color:red;  
  28. }  
  29. a:link   
  30. {  
  31.    color:black;  
  32.    text-decoration:none;  
  33.    font-size:20px;  
  34. }  
  35. a:hover{  
  36.    color:blue;  
  37.    text-decoration:underline;  
  38.    font-size:30px;  
  39. }  
  40. a:visited{  
  41.   color:red;  
  42. }  
  43. p.cls1{  
  44. color:blue;  
  45. font-size:30px;  
  46. }  
  47. p.cls2{  
  48. color:green;  
  49. font-size:20px;  
  50. }  
  51. /*父子选择器*/  
  52. #id1 span{  
  53.   color:red;  
  54.   text-decoration:italic;  
  55. }  
  56. #id1 span span{  
  57.   color:green;  
  58. }  
  59. #id1 span span a{  
  60.   color:blue;  
  61. }  
  62. #news_special{  
  63.  color:red;  
  64.  font-style:italic;  
  65. }  
  66. /*给新闻三再配置一个选择器*/  
  67. .cls1{  
  68. font-style:italic;  
  69. text-decoration:underline;  
  70. color:purple;  
  71. background-color:gray;  
  72. }  
/*class类选择器*/
.s1{
  background-color:pink;
  font-weight:bold;
  font-size:16px;
  color:black;
}
/*id 选择器使用*/
#id1{
   background-color:silver;
  font-size:40px;
  color:black;
}
/*html选择器使用 优先级低*/
body{
   color:orange;
}
/*通配符选择器使用*/
/*
margin提供四个值,则将按上右下左的顺时针赋值。
margin提供一个值代表上右下左;如果是两个值(上下、左右)*/
*{
   /*margin-top:0px;
   margin-left:0px;*/
   margin:0px;
   padding:opx;
   color:red;
}
a:link 
{
   color:black;
   text-decoration:none;
   font-size:20px;
}
a:hover{
   color:blue;
   text-decoration:underline;
   font-size:30px;
}
a:visited{
  color:red;
}
p.cls1{
color:blue;
font-size:30px;
}
p.cls2{
color:green;
font-size:20px;
}
/*父子选择器*/
#id1 span{
  color:red;
  text-decoration:italic;
}
#id1 span span{
  color:green;
}
#id1 span span a{
  color:blue;
}
#news_special{
 color:red;
 font-style:italic;
}
/*给新闻三再配置一个选择器*/
.cls1{
font-style:italic;
text-decoration:underline;
color:purple;
background-color:gray;
}
运行效果如下图所示:


5.选择器深入探讨
(1)父子选择器:
a.父子选择器可以有多级,但是在实际开发中不要超过三层。
b.负责选择器有严格的层级要求。
c.选择器中用于分级的标记,必须使用已有的html元素标记.
d.父子选择器不局限于什么类型的选择器。可以形如#id1 span span,也可以是其他形式的组合,但要注意层级关系.
(2)一个元素可以同时拥有ID选择器和class选择器
(3)一个元素最多有一个id选择器,但是可以有多个类选择器。
 多个class选择器用法:
<元素 class="类选择器1,类选择器2">
多个class选择器以在css文件中出现的顺序为准,应用样式时总是应用后出现的class选择器。
(4) 合并css文件  将多个css文件的公共部分单独写一份。css文件在用户浏览网页时也会由客户端向服务器请求css文件。例如:
.ad_stu,.ad_house,.ad_2{
height:196px;
float:left;
margin:5px 0px 0px 6px;
}
6.块元素和行内元素
行内元素它只占据能显示自身内容的宽度,而且他不会占据整行,而块元素不管自己的内容多少,会占据整行,会换行显示。
常见的行内元素有 <a><span><input type="XXX">
常见的块元素有 <div><p>
块元素和行内元素的区别:
a.行内元素只占据内容的的宽度,块元素不管内容多少要占全行。
b.行内元素只能容纳文本和其他行内元素,块元素可以容纳文本,行内元素和块元素。(和浏览器版本有关)
c.一些css属性对行内元素不生效,比如margin.left,right,width.建议尽可能使用块元素定位.(和浏览器版本有关)

注意:行内元素和块元素可以互换。使用dispaly:block/inline.

行内元素和块级元素对应用例的代码及效果如下:

//element.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title> New Document </title>  
  5.  </head>  
  6. <link rel="stylesheet" type="text/css" href="element.css">  
  7.  <body>  
  8.   <span class="s1">span1</span>  
  9.   <span class="s1">span2</span><input type="text"/>  
  10.   <div class="s2">div1</div>  
  11.   <div class="s2">div2</div><input type="text"/>  
  12.   <p style="background-color:green">这是一个人段落</p>  
  13.  </body>  
  14. </html>  
  15.    
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
 </head>
<link rel="stylesheet" type="text/css" href="element.css">
 <body>
  <span class="s1">span1</span>
  <span class="s1">span2</span><input type="text"/>
  <div class="s2">div1</div>
  <div class="s2">div2</div><input type="text"/>
  <p style="background-color:green">这是一个人段落</p>
 </body>
</html>
 
//element.css

  1. .s1{  
  2. background-color:pink;  
  3. display:block;/*希望使用s1的样式的当成块来显示*/  
  4. }  
  5. .s2{  
  6. background-color:gray;  
  7. width:100px;  
  8. display:inline;/*希望使用s1的样式的当成行来显示*/  
  9. }  
.s1{
background-color:pink;
display:block;/*希望使用s1的样式的当成块来显示*/
}
.s2{
background-color:gray;
width:100px;
display:inline;/*希望使用s1的样式的当成行来显示*/
}

运行效果如下图所示:


7.标准流/非标准流
流:html元素在网页中显示的顺序;
标准流:在html文件中,写在前面的元素在前面显示,写在后面的元素后面显示.
非标准流:在html文件中,当某个元素脱离标准流,就处于非标准流.

8.css中的盒子模型

盒子模型的效果如下图优酷盒子模型所示:

盒子模型解剖图:

盒子模型对应的用例1及效果如下:

//box1.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title> 盒子模型</title>  
  5. <link rel="stylesheet" type="text/css" href="box1.css">  
  6.  <body>  
  7.   <div class="div1">  
  8.   <img src="images/singer.jpg"/>  
  9.   <a href="#">孟庭苇</a>  
  10.   </div>  
  11.  </body>  
  12. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> 盒子模型</title>
<link rel="stylesheet" type="text/css" href="box1.css">
 <body>
  <div class="div1">
  <img src="images/singer.jpg"/>
  <a href="#">孟庭苇</a>
  </div>
 </body>
</html>
//box1.css

  1. body{  
  2.  border:1px solid red;  
  3.  width:300px;  
  4.  height:200px;  
  5.  /*自动居中 auto表示自动居中 不随浏览器大小而压缩*/  
  6.  margin:30px auto;  
  7. }  
  8. .div1{  
  9. font-size:12px;  
  10. text-align:center;  
  11. border:1px solid blue;  
  12. width:70px;  
  13. height:80px;  
  14. /*margin-left:5px; 
  15. margin-top:5px;*/  
  16. margin:5px 0px 0px 5px;  
  17. /*padding:5px 0px 0px 5px;*/  
  18. /*padding-top:35px;*//*会破坏盒子大小*/  
  19. }  
  20. /*img 本身可以作为盒子  margin太大会偏离div*/  
  21. .div1 img{  
  22. width:60px;  
  23. height:60px;  
  24. margin-top:5px;  
  25. margin-left:5px;  
  26. margin-bottom:1px;  
  27. }  
body{
 border:1px solid red;
 width:300px;
 height:200px;
 /*自动居中 auto表示自动居中 不随浏览器大小而压缩*/
 margin:30px auto;
}
.div1{
font-size:12px;
text-align:center;
border:1px solid blue;
width:70px;
height:80px;
/*margin-left:5px;
margin-top:5px;*/
margin:5px 0px 0px 5px;
/*padding:5px 0px 0px 5px;*/
/*padding-top:35px;*//*会破坏盒子大小*/
}
/*img 本身可以作为盒子  margin太大会偏离div*/
.div1 img{
width:60px;
height:60px;
margin-top:5px;
margin-left:5px;
margin-bottom:1px;
}
运行效果如下图所示:

盒子模型示例2对应的代码及效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值