• web十五讲,CSS高级


    对齐块元素

    • 块元素指的是占据全部可用宽度的元素,并且在其前后都会换行。
    • 块元素的例子:<h1>、<p>、<div>

    使用margin属性来水平对齐

    • 可通过将左和右边距设置为"auto",来对齐块元素。

    • 把左和右外边距设置为auto,指的是均等地分配可用的外边距。结果就是居中的元素:

      。center{
          margin-left:auto;
          margin-right:auto;
          70%;
          background-color:#b0e0e6;
      }
      

      案例:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <style>
              .center {
                  margin: auto;
                   70%;
                  background-color: #b0e0e6;
              }
          </style>
          <title>CSS 水平对齐</title>
      </head>
      
      <body>
          <div class="center">
              <p>这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。</p>
              <p>这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。</p>
          </div>
      
          <p>提示:如果宽度是 100%,则对齐没有效果</p>
          <p><b>注释:</b>除非已经声明了 !DOCTYPE,否则使用 margin:auto 在 IE8 以及更早的版本中是无效的。</p>
      </body>
      
      
      </html>
      

    使用position属性进行左和右对齐

    • 对齐元素的方法之一是使用绝对定位

      .right{
          position:absolute;
          right:0px;
          300px;
          background-color:#b0e0e6;
      }
      

      案例:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <style>
              .right {
                  position: absolute;
                  right: 0px;
                   100px;
                  background-color: #b0e0e6;
              }
      
          </style>
          <title>使用 position 属性进行左和右对齐</title>
      </head>
      
      <body>
          <div class="right">
              <p>这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。</p>
              <p>这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。</p>
              <p>.right
                  {
                  position:absolute;
                  right:0px;
                  300px;
                  background-color:#b0e0e6;
                  }</p>
          </div><hr>
      </body>
      
      </html>
      

    跨浏览器兼容性问题

    • 当像这样对齐元素时,对<body>元素的外边距和内边距进行预定义是一个好主意。这样可以避免在不同浏览器中出现可见的差异。

      body{
          margin:0;
          padding:0;
      }
      .container{
          position:relative;
          100%;
      }
      .right{
          position:absolute;
          right:0px;
          300px;
          background-color:#b0e0e6;
      }
      

    使用float属性来进行左和右对齐

    • 对齐元素的另一种方式是使用float属性:

      .right{
          float:right;
          300px;
          background-color:#b0e0e6;
      }
      

    CSS尺寸(Dimension)

    • CSS尺寸(Dimension)属性允许你控制元素的高度和宽度。同样,它允许你增加行间距。

      属性 描述
      height 设置元素高度
      line-height 设置行高
      max-height 设置元素的最大行高
      max-width 设置元素的最大宽度
      min-height 设置元素的最小高度
      min-width 设置元素的最小宽度
      width 设置元素的宽度
    • 可能的值:

      描述
      auto 默认,浏览器会自动计算出实际的高度。
      length 使用px、cm等单位定义高度。
      % 基于包含它的块级对象的百分比高度。
      inherit 从父元素继承height属性值。

    CSS分类属性

    • CSS分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处:

      • 相对于其正常位置来定位元素;

      • 使用绝对值来定位元素;

      • 以及元素的可见度。

        属性 描述
        clear 设置一个元素的侧面是否允许其他的浮动元素。
        cursor 规定当指向某元素之上时显示的指针类型。
        display 设置是否及如何显示元素。
        float 定义元素在哪个方向浮动。
        position 把元素放置到一个静态的、相对的、绝对的或固定的位置中。
        visibility 设置元素是否可见
    • CSS display属性

    描述
    none 此元素不会显示。
    block 此元素将显示为块级元素,前后有换行符。
    inline 默认。此元素会被显示为内联元素,前后无换行符。
    inline-block 行内块元素。
    list-item 此元素会作为列表显示。
    run-in 此元素会根据上下文作为块级元素或内联元素显示。
    compact 该值由于很少用,在CSS2.1中已被删除。
    marker 该值由于很少用,在CSS2.1中已被删除。
    table 此元素会作为块级表格来显示(类似<table>),表格前后有换行符。
    inline-table 此元素会作为内联表格来显示(类似<table>),表格前后无换行符。
    table-row-group 此元素会作为一个或多个行的分组来显示(类似<tbody>)。
    table-header-group 此元素会作为一个或多个行的分组来显示(类似<thead>)。
    table-footer-group 此元素会作为一个或多个行的分组来显示(类似<tfoot>)。
    table-row 此元素会作为一个表格行显示(类似<tr>)。
    table-column-group 此元素会作为一个或多个列的分组来显示(类似<colgroup>)。
    table-column 此元素会作为一个单元格列显示(类似<col>)。
    table-cell 此元素会作为一个表格单元格显示(类似<td>和<th>)。
    table-caption 此元素会作为一个表格标题显示(类似<caption>)。
    inherit 规定从父元素继承display属性的值。

    注:

    • inline:默认。此元素会被显示为内联元素,前后无换行符。
    • block:此元素将显示为块级元素,前后有换行符。
      • 比如在一个项目列表中,每项都是超链接,正常是鼠标移动到文字上才激活超链接,如果你把li设置为块级元素,那么鼠标移动到这个块上也就是这个li的范围就会激活超链接!
    • none:此元素不会被显示。

    案例:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>CSS display 属性</title>
        <style type="text/css">
            p {
                display: inline
            }
    
            div {
                display: none
            }
    
            span {
                display: block
            }
        </style>
    </head>
    
    <body>
        <p>本例中的样式表把段落元素设置为内联元素。</p>
    
        <p>而 div 元素不会显示出来!</p>
    
        <div>div 元素的内容不会显示出来!</div>
    
        <span>本例中的样式表把 span 元素设置为块级元素。</span>
        <span>两个 span 元素之间产生了一个换行行为。</span>
    </body>
    
    </html>
    

    导航栏

    • 拥有易用的导航条对任何网站都很重要。

    • 通过CSS,可以把乏味的HTML菜单转换成漂亮的导航栏。

    • 导航栏 = 连接列表。

    • 导航栏需要标准的HTML作为基础。

    • 导航栏基本上是一个链接列表,因此使用<ul>和<li>元素是非常合适的。

      • 案例1:

        <!DOCTYPE html>
        <html lang="en">
        
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>导航栏基本上是一个链接列表</title>
            <style>
                ul.test {
                    list-style-type: none;
                    margin: 0;
                    padding: 0;
                
                }
        
            </style>
        
        </head>
        
        <body>
            <ul>
                <li><a href="#home">Home</a></li>
                <li><a href="#news">News</a></li>
                <li><a href="#contact">Contact</a></li>
                <li><a href="#about">About</a></li>
            </ul>
        
            <ul class="test">
                <li><a href="#home">Home</a></li>
                <li><a href="#news">News</a></li>
                <li><a href="#contact">Contact</a></li>
                <li><a href="#about">About</a></li>
            </ul>
            <p><b>注释:</b>我们使用在测试链接中使用了 href="#"。在真实的网站中,应该是真实的 URL。</p>
        </body>
        
        </html>
        

    • 案例2:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>完整样式的导航栏实例</title>
          <style>
              ul {
                  list-style-type: none;
                  margin: 0;
                  padding: 0;
              }
      
              a:link,
              a:visited {
                  display: block;
                  font-weight: bold;
                  color: #FFFFFF;
                  background-color: #bebebe;
                   100px;
                  text-align: center;
                  padding: 4px;
                  text-decoration: none;
                  text-transform: uppercase;
              }
      
              a:hover,
              a:active {
                  background-color: #cc0000;
              }
          </style>
      </head>
      
      <body>
          <ul>
              <li><a href="#home">Home</a></li>
              <li><a href="#news">News</a></li>
              <li><a href="#contact">Contact</a></li>
              <li><a href="#about">About</a></li>
          </ul>
      </body>
      
      </html>
      

    • 案例3:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>完整样式的导航栏实例</title>
          <style>
              ul {
                  list-style-type: none;
                  margin: 0;
                  padding: 0;
              }
      
              a:link,
              a:visited {
                  display: block;
                  font-weight: bold;
                  color: #FFFFFF;
                  background-color: #bebebe;
                   100px;
                  text-align: center;
                  padding: 4px;
                  text-decoration: none;
                  text-transform: uppercase;
              }
      
              a:hover,
              a:active {
                  background-color: #cc0000;
              }
      
              .向左浮动 {
                  float: left;
              }
          </style>
      </head>
      
      <body>
          <ul>
              <li class="向左浮动"><a href="#home">Home</a></li>
              <li class="向左浮动"><a href="#news">News</a></li>
              <li class="向左浮动"><a href="#contact">Contact</a></li>
              <li class="向左浮动"><a href="#about">About</a></li>
          </ul>
      </body>
      
      </html>
      

    • 从列表中去掉圆点和外边距

      ul{
          list-style-type:none;  /* 取消圆点 */
          margin:0;  /* 取消外边距 */
          padding:0;  /* 取消内边距 */
      }
      
    • 垂直导航栏:如果要构建垂直导航栏,只需要定义<a>元素的样式

      • display:block 把链接显示为块元素,可使整个链接区域可点击(不仅仅是文本)。

        a{
            display:block;
            60px;
        }
        
    • 完整样式的导航栏:见上面的案例2

    • 水平导航栏:

      • 有2种创建水平导航栏的方法:使用行内显示和浮动列表项。

        li{
            display:inline;  /* 行内显示 */
        }
        
        li{
            float:left;  /* 向左浮动显示列表项 */
        }
        a{
            display:block;  /* 块方式显示导航栏 */
            60px;  /* 宽度固定为60px */
        }
        
      • 两种方法都可以,但若需要链接拥有相同尺寸就只能使用浮动方法。

    • 图片库:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>CSS 图片库</title>
          <style>
              div.img {
                  margin: 3px;
                  border: 1px solid #bebebe;
                  height: auto;
                   auto;
                  float: left;
                  text-align: center;
              }
      
              div.img img {
                  display: inline;
                  margin: 3px;
                  border: 1px solid #bebebe;
              }
      
              div.img a:hover img {
                  border: 1px solid #333333;
              }
      
              div.desc {
                  text-align: center;
                  font-weight: normal;
                   150px;
                  font-size: 12px;
                  margin: 10px 5px 10px 5px;
              }
          </style>
      </head>
      
      <body>
          <div class="img">
              <a target="_blank" href="img/tulip_ballade.jpg" height="">
                  <img src="img/tulip_ballade_s.jpg" alt="Ballade" width="160" height="160">
              </a>
              <div class="desc">春意盎然</div>
          </div>
      
          <div class="img">
              <a target="_blank" href="img/tulip_flaming_club.jpg">
                  <img src="img/tulip_flaming_club_s.jpg" alt="Ballade" width="160" height="160">
              </a>
              <div class="desc">繁花似锦</div>
          </div>
      
          <div class="img">
              <a target="_blank" href="img/tulip_fringed_family.jpg">
                  <img src="img/tulip_fringed_family_s.jpg" alt="Ballade" width="160" height="160">
              </a>
              <div class="desc">在此处添加对图像的描述</div>
          </div>
      
          <div class="img">
              <a target="_blank" href="img/tulip_peach_blossom.jpg">
                  <img src="img/tulip_peach_blossom_s.jpg" alt="Ballade" width="160" height="160">
              </a>
              <div class="desc">在此处添加对图像的描述</div>
          </div>
      </body>
      
      </html>
      

  • 相关阅读:
    python笔记26(正则表达式、re模块)
    python笔记24(回顾、复习)
    python笔记25(正则表达式课程一)
    python笔记23(面向对象课程五)
    python(leetcode)-1.两数之和
    python(leetcode)-283移动零
    python(leetcode)-66加一问题
    python(leetcode)-350两个数组的交集
    python(leetcode)-136只出现一次的数字
    python数据结构-数组/列表/栈/队列及实现
  • 原文地址:https://www.cnblogs.com/fz17/p/14136464.html
Copyright © 2020-2023  润新知