老夏学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 老夏

【Web前端系列课程(一)】HTML+CSS

[复制链接]

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 14:49:13 | 显示全部楼层
第九章 CSS样式
    9.11 overflow


        overflow属性规定当内容溢出元素框时发生的事情。
        overflow属性如下:

属性属性值描述
overflow
overflow-x
overflow-y
visible内容不会被修剪,会呈现在元素框之外。(默认)
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 14:53:33 | 显示全部楼层
第十章 CSS框模型
    10.1 CSS框模型概述


        CSS框模型规定了元素框处理元素内容、内边距、边框和外边距的方式。
        元素框如下图所示:

元素框.png
        元素框的最内部分是实际的内容,直接包围内容的是内边距,内边距呈现了元素的背景(背景应用于由内容和内边距、边框组成的区域),内边距的边缘是边框,边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。注意,内边距、边框和外边距默认值是零。
        在CSS中,width和height指的是内容区域的宽度和高度,增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
        假设元素框的每个边上有10个像素的外边距和5个像素的内边距,如果希望这个元素框最终达到100个像素,就需要将内容的宽度设置为70像素,如下图:

元素框.png
        注意,内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:01:39 | 显示全部楼层
第十章 CSS框模型
    10.2 内边距


        元素的内边距在边框和内容区之间,控制该区域最简单的属性是padding属性。
        padding属性如下:

属性属性值描述
paddingpx内边距,根据值的个数,决定内边距的顺序
1个值:四个内边距
2个值:上下左右
3个值:上左右下
4个值:上右下左
padding-left
padding-top
padding-right
padding-bottom
px左内边距
上内边距
右内边距
下内边距

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:08:09 | 显示全部楼层
第十章 CSS框模型
    10.3 边框


        元素的边框是围绕元素内容和内边距的一条或多条线。
        CSS的border属性可以规定元素边框的样式、宽度和颜色。
        border属性如下:
属性属性值描述
border-style
border-left-style
border-right-style
border-top-style
border-bottom-style
none定义无边框
dotted定义点状边框,在大多数浏览器中呈现为实线
dashed定义虚线,在大多数浏览器中呈现为实线
solid定义实线
double定义双线,双线的宽度等于border-width的值
groove定义3D凹槽边框,其效果取决于border-color的值
ridge定义3D垄状边框,其效果取决于border-color的值
inset定义3Dinset边框,其效果取决于border-color的值
outset定义3D outset边框,其效果取决于border-color的值
边框样式
border-width
border-left-width
border-right-width
border-top-width
border-bottom-width
px边框宽度
border-color
border-left-color
border-right-color
border-top-color
border-bottom-color
十进制、十六进制或英文边框颜色
        边框属性可以进行缩写,格式如下:
  1. border: 2px dotted #f00
复制代码

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:11:22 | 显示全部楼层
第十章 CSS框模型
    10.4 外边距


        围绕在元素边框的空白区域是外边距,设置外边距会在元素外创建额外的"空白",设置外边距的最简单的方法就是使用margin属性。
        margin属性如下:

属性属性值描述
marginpx外边距,根据值的个数,决定外边距的顺序
1个值:四个外边距
2个值:上下左右
3个值:上左右下
4个值:上右下左
margin-left
margin-top
margin -right
margin -bottom
px左外边距
上外边距
右外边距
下外边距

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:16:31 | 显示全部楼层
第十章 CSS框模型
    10.5 外边距合并


        外边距合并(叠加)指的是当两个垂直外边距相遇时,它们将形成一个外边距,合并后的外边距高度等于两个发生合并的外边距的高度中的较大者。
        当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并,如下图:

外边距合并.png
        当一个元素包含在另一个元素中时,它们的上、下外边距也会发生合并,如下图:
外边距合并.png
        外边距合并是有意义的。以由几个段落组成的典型文本页面为例,第一个段落上面的空间等于段落的上外边距,如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和,这就意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。
外边距合并.png
        但需要注意的是,只有普通文档流中块标签的垂直外边距才会发生外边距合并,行内标签、浮动框、绝对定位之间的外边距不会合并。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:21:39 | 显示全部楼层
第十一章 CSS定位
    11.1 CSS定位概述


        CSS定位可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的布局。
        定位允许我们定义元素框相对于其正常位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。注意,浮动不完全是定位,不过,它当然也不是正常流布局。
        首先,我们要知道"一切皆为框"的意义,div、h1或p元素常常被称为块级元素,这意味着这些元素显示为一块内容,即"块框";与之相反,span和strong等元素称为"行内元素",这是因为它们的内容显示在行中,即“行内框”。
        我们可以使用display属性改变生成的框的类型。这意味着,通过将display属性设置为block,可以让行内元素表现得像块级元素一样;还可以通过把display设置为none,让生成的元素根本没有框,这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
        CSS有三种基本的定位机制:普通流、浮动和绝对定位。
        除非专门指定,否则所有框都在普通流中定位,也就是说,普通流中的元素的位置由元素在HTML中的位置决定。
        块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
        行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。
        通过使用position属性,可以选择4种不同类型的定位,这会影响元素框生成的方式。
        position属性如下:

属性属性值描述
position static元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
absolute元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
relative元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
fixed元素框的表现类似于将position设置为absolute,不过其包含块是视窗本身。
left
right
top
bottom
px位置
z-index数值属性设置元素的堆叠顺序,z-index仅能在定位元素上有效,默认值为0,值越大显示优先级越高

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:23:35 | 显示全部楼层
第十一章 CSS定位
    11.2 相对定位和绝对定位


一、相对定位
        设置为相对定位的元素会偏移某个距离,但元素仍然保持其未定位前的形状,它原本所占的空间也仍然保留,我们可以通过设置垂直或水平位置,让这个元素"相对于"它的起点进行移动。
        注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间,因此,移动元素会导致它覆盖其它框。

二、绝对定位
        设置为绝对定位的元素框从文档流完全删除,并且相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块,包含块可能是文档中的另一个元素或者是初始包含块。元素设置绝对定位后,使该元素的位置与文档流无关,因此不占据空间。
        因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置z-index属性来控制这些框的堆放次序。


  • 示例代码:实现下图页面
全部居中.png
  1. <!doctype html>
  2. <html lang="en">
  3.         <head>
  4.                 <meta charset="UTF-8">
  5.                 <title>Document</title>
  6.                 <style>
  7.                         #d1{
  8.                                 width:600px;
  9.                                 height:400px;
  10.                                 background:#ccc;
  11.                                 position:absolute;
  12.                                 top:50%;
  13.                                 left:50%;
  14.                                 margin-top:-200px;
  15.                                 margin-left:-300px;
  16.                         }
  17.                         #d2{
  18.                                 width:200px;
  19.                                 height:200px;
  20.                                 background:#f00;
  21.                                 position:relative;
  22.                                 top:50%;
  23.                                 left:50%;
  24.                                 margin-top:-100px;
  25.                                 margin-left:-100px;
  26.                         }
  27.                 </style>
  28.         </head>
  29.         <body>
  30.                 <div id="d1">
  31.                         <div id="d2"></div>
  32.                 </div>
  33.         </body>
  34. </html>
复制代码

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 15:38:58 | 显示全部楼层
第十一章 CSS定位
    11.3 浮动


        首先,我们要知道浮动不完全是定位,当然也不是正常的流布局,但浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
        浮动的属性如下:

属性属性值描述
floatleft|right浮动
        下面我们演示一下浮动的几种情况。
        (1)当框1向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘,如下图:

浮动.png
        (2)当框1向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框2,使框2从视图中消失。如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框,如下图:
浮动.png
        (3)如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”,如下图:
浮动.png
        (4)浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。因此,创建浮动框可以使文本围绕图像,如下图:
浮动.png
        (5)要想阻止行框围绕浮动框,需要对该框应用clear属性。
        clear属性如下:

属性属性值描述
clearleft|right|both规定元素的哪一侧不允许其他浮动元素,注意,这个规则只能影响使用清除的元素本身,不能影响其他元素。
        为了实现这种效果,在被清理的元素的上外边距上添加足够的空间,使元素的顶边缘垂直下降到浮动框下面,如下图:
浮动.png
        (6)假设让一个图片浮动到文本块的左边,并且希望这幅图片和文本包含在另一个具有背景颜色和边框的元素中,我们可以编写如下代码:
  1. .news {
  2.           background-color: gray;
  3.           border: solid 1px black;
  4.   }
  5. .news img {
  6.           float: left;
  7.   }
  8. .news p {
  9.           float: right;
  10.   }
  11. <div class="news">
  12.         <img src="news-pic.jpg" />
  13.         <p>some text</p>
  14. </div>
复制代码
        这种情况下,出现了一个问题。因为浮动元素脱离了文档流,所以包围图片和文本的div不占据空间。
        如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用clear,如下图:

浮动.png
        由于没有现有的元素可以应用清理,所以我们只能添加一个空元素并且清理它,代码如下:
  1. .news {
  2.            background-color: gray;
  3.     border: solid 1px black;
  4.   }
  5. .news img {
  6.     float: left;
  7.   }
  8. .news p {
  9.           float: right;
  10.   }
  11. .clear {
  12.           clear: both;
  13.   }
  14. <div class="news">
  15.         <img src="news-pic.jpg" />
  16.         <p>some text</p>
  17.         <div class="clear"></div>
  18. </div>
复制代码
        这样就可以实现我们希望的效果,但是需要添加多余的代码。常常有元素可以应用clear,但是有时候不得不为了进行布局而添加无意义的标记。
        不过我们还有另一种办法,那就是对容器div进行浮动:

  1. .news {
  2.           background-color: gray;
  3.           border: solid 1px black;
  4.            float: left;
  5.   }
  6. .news img {
  7.   float: left;
  8.   }
  9. .news p {
  10.   float: right;
  11.   }
  12. <div class="news">
  13.         <img src="news-pic.jpg" />
  14.         <p>some text</p>
  15. </div>
复制代码
        这样会得到我们希望的效果。不幸的是,下一个元素会受到这个浮动元素的影响。为了解决这个问题,有些人选择对布局中的所有东西进行浮动,然后使用适当的有意义的元素(常常是站点的页脚)对这些浮动进行清理。这有助于减少或消除不必要的标记。

  • 示例代码:实现下图页面
页面布局.png
  1. <!doctype html>
  2. <html lang="en">
  3.         <head>
  4.                 <meta charset="UTF-8">
  5.                 <title>Document</title>
  6.                 <style>
  7.                         #container{
  8.                                 width:1000px;
  9.                                 height:610px;
  10.                                 margin:0 auto;
  11.                         }
  12.                         #nav{
  13.                                 width:100%;
  14.                                 height:5px;
  15.                         }
  16.                         #navbar{
  17.                                 width:100%;
  18.                                 height:50px;
  19.                                 background:#000;
  20.                         }
  21.                         #navbar .pic{
  22.                                 margin-top:5px;
  23.                                 margin-left:10px;
  24.                                 height:40px;
  25.                         }
  26.                         .login{
  27.                                 float:right;
  28.                                 margin-top:5px;
  29.                                 margin-right:10px;
  30.                                 width:200px;
  31.                                 height:40px;
  32.                         }
  33.                         .login ul{
  34.                                 list-style-type:none;
  35.                                 margin:0px;
  36.                                 padding:0px;
  37.                         }
  38.                         .login ul li{
  39.                                 float:left;
  40.                                 line-height:40px;
  41.                                 font-size:22px;
  42.                                 color:#fff;
  43.                                 margin-left:30px;
  44.                         }
  45.                         #content{
  46.                                 width:100%;
  47.                                 height:500px;
  48.                         }
  49.                         #left{
  50.                                 float:left;
  51.                                 width:495px;
  52.                                 height:500px;
  53.                                 background:#ccc;
  54.                         }
  55.                         #left .pic{
  56.                                 height:200px;
  57.                                 position:relative;
  58.                                 top:50%;
  59.                                 left:50%;
  60.                                 margin-top:-100px;
  61.                                 margin-left:-100px;
  62.                         }
  63.                         #right{
  64.                                 float:right;
  65.                                 width:495px;
  66.                                 height:500px;
  67.                                 background:#ccc;
  68.                         }
  69.                         #right ul{
  70.                                 list-style-type:none;
  71.                                 margin:0px;
  72.                                 padding:0px;
  73.                         }
  74.                         #right ul li{
  75.                                 font-size:40px;
  76.                                 background:url(logo-1-1.png) no-repeat 5px 5px;
  77.                                 padding-left:50px;
  78.                         }
  79.                         #footer{
  80.                                 width:100%;
  81.                                 height:50px;
  82.                                 background:#000;
  83.                         }
  84.                         .join{
  85.                                 float:right;
  86.                                 margin-top:5px;
  87.                                 margin-right:10px;
  88.                                 width:300px;
  89.                                 height:40px;
  90.                         }
  91.                         .join ul{
  92.                                 list-style-type:none;
  93.                                 margin:0px;
  94.                                 padding:0px;
  95.                         }
  96.                         .join ul li{
  97.                                 float:left;
  98.                                 line-height:40px;
  99.                                 font-size:22px;
  100.                                 color:#fff;
  101.                                 margin-left:20px;
  102.                         }
  103.                 </style>
  104.         </head>
  105.         <body>
  106.                 <div id="container">
  107.                         <div id="navbar">
  108.                                 <img src="logo-2.png" alt="" class="pic">
  109.                                 <div class="login">
  110.                                         <ul>
  111.                                                 <li>登录</li>
  112.                                                 <li>注册</li>
  113.                                         </ul>
  114.                                 </div>
  115.                         </div>
  116.                         <div id="nav"></div>
  117.                         <div id="content">
  118.                                 <div id="left">
  119.                                         <img src="logo-1.png" alt="" class="pic">
  120.                                 </div>
  121.                                 <div id="right">
  122.                                         <ul>
  123.                                                 <li>科技-老夏学院</li>
  124.                                                 <li>汇聚-老夏学院</li>
  125.                                                 <li>融合-老夏学院</li>
  126.                                                 <li>创新-老夏学院</li>
  127.                                         </ul>
  128.                                 </div>
  129.                         </div>
  130.                         <div id="nav"></div>
  131.                         <div id="footer">
  132.                                 <div class="join">
  133.                                         <ul>
  134.                                                 <li>首页</li>
  135.                                                 <li>加入我们</li>
  136.                                                 <li>联系我们</li>
  137.                                         </ul>
  138.                                 </div>
  139.                         </div>
  140.                 </div>
  141.         </body>
  142. </html>
复制代码

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-17 16:35:15 | 显示全部楼层
第十二章 CSS3样式
    12.1 CSS3边框


        CSS3能够创建圆角边框,向矩形添加阴影,使用图片来绘制边框,并且不需使用设计软件,比如PhotoShop。
        CSS3边框属性如下:

属性属性值描述
border-radiuspx圆角边框
box-shadowh-shadow:水平阴影的位置,允许负值,必填值
v-shadow:垂直阴影的位置,允许负值,必填值
blur:模糊距离,可选值
color:阴影的颜色,可选值
inset:将外部阴影改为内部阴影,可选值        
边框阴影,书写格式:box-shadow:5px 10px 20px #000 inset;
border-imageborder-image-source:用在边框的图片的路径
border-image-slice:图片边框向内偏移        
border-image-width:图片边框的宽度        
border-image-outset:边框图像区域超出边框的量
border-image-repeat:图像边框是否应平铺(repeat)、铺满(round)或拉伸(stretch)
边框图片,书写格式:border-image:url(border.png) 30 30 round;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|老夏学院 ( 辽ICP备19020546号-1 )

GMT+8, 2024-5-18 21:10 , Processed in 1.089885 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020.

快速回复 返回顶部 返回列表