Day03 CSS样式

1. CSS文本

p{
        /*
      颜色是通过CSS最经常的指定:
      十六进制值 - 如: #FF0000
      一个RGB值 - 如: RGB(255,0,0)
      颜色的名称 - 如: red
      */
      color: #ff6699;
      /*文本对齐 默认值为left
    可以取left | center | right*/
      text-align: center;
      /*文本修饰
      text-decoration
      underline 下划线
      line-through 删除线
      overline 上划线
      none 什么都没有*/
      text-decoration: overline;
      /*文本缩进*/
      text-indent: 2em;
      /*文本转换
      uppercase 全部大写
      lowercase 全部小写
      capitalize 首字母大写*/
      text-transform: capitalize;
    }

2.CSS字体

p{
      /*字体格式
      font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持
      第一种字体,他将尝试下一种字体
      */
      font-family: -apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
      /*字体大小*/
      font-size: 14px;
      /*字体样式 normal | italic*/
      font-style: italic;
      /*设置字体权重  bold lighter
      若数值:100-900*/
      font-weight: 900;
      /*行高*/
      line-height:40px;
    }

3. CSS链接

/*若要同时设置这些样式必须保证按照如下顺序*/
    /* 跳转之前的链接样式 */
    a:link{
      color: #333;
    }
    /* 跳转之后的链接样式 */
    a:visited{
      color: yellow;
    }
    /* 鼠标覆盖的链接样式 */
    a:hover{
      color: blue;
    }
    /* 鼠标点击时的链接样式 */
    a:active{
      color: red;
    }

4. CSS列表

 <style>
    /*list-style:none 去掉列表样式
    square 方块
    circle空心圆
    disc 实心圆*/
    /*list-style-image:url(xxx)
    列表样式图片*/
    ul{
      /*list-style:disc;*/
      list-style-image: url("../images/icon1.png");
    }

  </style>

5. CSS边框

<style>
    div{
      width: 100px;
      height: 100px;
      /*边框
      参数1 宽度
      参数2 样式
      参数3 颜色*/
      /*border: 1px solid #333;*/
    /*不同方向的边框*/
      border-top: 1px solid #333;
    }
  </style>

6. CSS表格

CSS如下:

<style>
    table{
      width: 500px;
      /*边框折叠
      border-collapse:collapse
      让边框都重叠*/
      border-collapse: collapse;
      text-align: center;
      line-height: 50px;
    }
    th,td{
      border: 1px solid #333;
    }
  </style>

HTML如下:

<!--表格table-->
  <table>
    <!--表头thead-->
    <thead>
    <!--行tr table row-->
    <tr>
      <!--具体的表头字段th-->
    <th>手机</th>
      <th>商城</th>
    </tr>
    </thead>
    <!--表体-->
    <tbody>
    <tr>
      <!--每一行具体的内容-->
      <td>苹果</td>
      <td>京东</td>
    </tr>
    <tr>
      <td>小米</td>
      <td>天猫</td>
    </tr>
    <tr>
      <td>华为</td>
      <td>苏宁</td>
    </tr>
    </tbody>
  </table>

跨行和列的表格
HTML如下:

<table>
  <thead>
  <tr>
    <!--跨列-->
    <th colspan="3">商城</th></tr>
  </thead>
  <tbody>
  <tr class="gap"></tr>
  <tr>
    <!--跨行-->
    <th rowspan="5">商城</th>
    <td>手机</td>
    <td>电池</td>
  </tr>
  <tr class="gap"></tr>
  <tr>
    <td>衣服</td>
    <td>鞋子</td>
  </tr>
  <tr class="gap"></tr>
  <tr>
    <td>电风扇</td>
    <td>话筒</td>
  </tr>
  </tbody>
</table>

CSS如下:

<style>
    table{
      width: 500px;
      border-collapse: collapse;
      text-align: center;
    }
    tr,td{
      border: 1px solid #333;
    }
    .gap{
      height: 20px;
    }
  </style>

7. CSS轮廓

 div{
      width: 100px;
      height: 100px;
      background: red;
    /*轮廓和边框设置方式类似*/
      outline: 10px solid #333;
    }
    input{
      margin-top: 50px;
    /* 输入框选中高亮就是用的outline,若设置为none就没有这个样式了*/
      outline: none;
    }

8. CSS透明度

.child{
      width: 100px;
      height: 100px;
      background-color: red;
      /*透明度opacity 取值范围0-1*/
      opacity: 0.4;
    }

9. CSS样式继承

CSS如下:

<style>
    /*在块元素之间
    width子元素不设置width,他会继承父元素的width*/
    /*height: 如果父元素没有设置height,它会得到子元素的高度*/
    .child{
      height: 50px;
      width: 50px;
      background: yellow;
    }
    .parent{
      background: red;
    }
    .grandfather{
      width: 100px;
    }
  </style>

HTML如下:

<div class="grandfather">
<div class="parent">
  <div class="child"></div>
</div>
</div>

效果:


继承效果

CSS如下:

 <style>
    /*css可以继承的属性*/
    /*文本相关属性:color,text-align,text-decoration,text-transform,text-indent(内联标签不能设置此属性)*/
    /*字体相关属性:font-family,font-style,font-size,font-weight,line-height*/
    /*列表相关属性:list-style*/
    /*表格相关属性:border-collapse*/
    /*其他属性:cursor,visibility*/

    body{
      color: red;
      font-size: 14px;
      cursor: pointer;
    }
    ul{
      list-style: none;
    }
  </style>

HTML如下:

<p>你好,世界</p>
<div>
  <h1>h1</h1>
</div>
<ul>
  <li>列表</li>
</ul>

10. 盒子模型的box-sizing

 <style>
    /*当盒子模型的*/
    /*box-sizing:border-box*/
    /*设置border,padding它的width,height不会发生改变 会往里挤
    默认是content-box
    */
    div{
      width: 100px;
      height: 100px;
      background: red;
      box-sizing: border-box;
      margin-left: 100px;
      border: 10px solid #333;
      padding: 5px;
    }
  </style>

效果如下:
盒子总的大小为设置的100X100 不会因为border和padding而改变


box-sizing

11. 浮动

11.1 什么是浮动

  • 浮动的目的:为了让元素并排显示
  • 浮动的原理: 子元素浮动,父元素没有了高度
    HTML如下:
<div class="parent">
  <div class="child"></div>
</div>

CSS如下:

<style>
    .parent{
      width: 1200px;
      background: red;
    }
    .child{
      width: 100px;
      height: 50px;
      background: yellow;
      float: left;
    }
  </style>

效果如下:
父元素坍塌,没有高度。


浮动

11.2 清除浮动方式1

HTML

<div class="parent">
  <div class="child"></div>
  <div class="two"></div>
</div>

CSS如下:

<style>
    .parent{
      width: 1200px;
      background: red;
      height: 200px;
    }
    .child{
      width: 100px;
      height: 50px;
      background: yellow;
      float: left;
    }
    .two{
      /*clear: both 让该元素不受其他元素浮动的影响/清除浮动的样式
      只用对紧靠着的元素使用 注意two所在的位置*/
      clear: both;
      width: 150px;
      height: 150px;
      background: green;
    }
  </style>

11.3清除浮动方式2

HTML如下:

<div class="parent" >
  <div class="child"></div>
</div>
<div class="one"></div>

CSS如下:

<style>
    /*子元素浮动,让父元素有高度
    给父元素添加overflow:hidden;
    */
    .parent{
      overflow: hidden;
      width: 300px;
      background: red;
    }
    .child{
      width: 100px;
      height: 50px;
      background: yellow;
      float: left;
    }
    .one{
      width: 60px;
      height: 60px;
      background: green;
    }
  </style>

效果:
浮动被清除


清除浮动

11.4 清除浮动方式3

HTML如下:

<div class="parent row" >
  <div class="child"></div>
</div>
<div class="one"></div>

CSS 如下:
注意:是给父元素添加after伪元素,因为生成的伪元素会成为使用样式的元素的子元素

<style>
    /*子元素浮动,让父元素有高度
    给父元素添加after伪元素并设置伪元素clear:both display:table
    */
    .parent{
      width: 300px;
      background: red;
    }
    .child{
      width: 100px;
      height: 50px;
      background: yellow;
      float: left;
    }
    .row:after{
      content: '';
      display: table;
      clear: both;
    }
    .one{
      width: 60px;
      height: 60px;
      background: green;
    }
  </style>

效果如11.3的图。

12. CSS定位

CSS如下:

<style>
    .parent{
      width: 200px;
      height: 200px;
      background: red;
      /*相对定位就是元素在页面上正常的位置
      position:relative*/
      position: relative;
      left: 100px;
      top: 100px;
    }
    .child{
      right: 0px;
      /*top: 50px;*/
      bottom: 0px;
      width: 100px;
      height: 100px;
      background: yellow;
      /*绝对定位:绝对定位的元素的位置相对于最近的相对定位的父元素
      相对定位和绝对定位一般是成对出现,父元素相对定位,子元素绝对定位
      */
      position: absolute;
    }
  </style>

HTML如下:

<div class="parent">
  <div class="child">
  </div>
</div>

效果如下:


定位

13. CSS垂直水平居中

13.1 方式1

<style>
    *{
      margin: 0;
      padding: 0;}
      /*父元素相对定位,子元素绝对定位,子元素定位于高宽50%处
      再用margin-top| margin-left为子元素高宽值得一半来挤到中心*/
    .parent{
      width: 200px;
      height: 200px;
      background: red;
      position: relative;
    }
    .child{
      width: 80px;
      height: 80px;
      left: 50%;
      top: 50%;
      margin-top: -40px;
      margin-left:-40px;
      background: yellow;
      position: absolute;
    }
  </style>

13.2 方式2

<style>
    *{
      margin: 0;
      padding: 0;}
    .parent{
      width: 200px;
      height: 200px;
      background: red;
      position: relative;
    }
    .child{
      width: 80px;
      height: 80px;
      /*父元素相对定位,子元素绝对定位,子元素上下左右定位0,再用margin:auto去拉*/
       left:0;
      right:0;
      top:0;
      bottom:0;
      margin:auto
      background: yellow;
      position: absolute;
    }
  </style>

14. CSS固定定位

 <style>
    .one{
      /*position:fixed 定于屏幕上得一个位置,不随页面滚动而滚动*/
      position: fixed;
      width: 100px;
      height: 100px;
      right: 0;
      bottom: 50%;
      background: red;
    }
  </style>

15. CSS Z-index

CSS如下:

 <style>
    .parent{
      width: 300px;
      height: 300px;
      background: red;
      position: relative;
    }
    .one{
      width: 100px;
      height: 100px;
      background: yellow;
      position: absolute;
      z-index: 100;
    }
    .two{
      width: 50px;
      height: 50px;
      background: green;
      position: absolute;
      z-index: 199;
    }
    .parent:hover .two{
      z-index: 99;
    }

  </style>

HTML如下:

<!--Z-index -->
<!--功能:给那些设置了绝对定位的元素设置元素的堆叠顺序  -->
<div class="parent">
  <div class="one"></div>
  <div class="two"></div>
</div>

16. 浮动导航案例

CSS如下:

<style>
    *{
      margin: 0;
      padding: 0;
    }
    ul{
      list-style: none;
    }
    .nav{
      line-height: 50px;
      overflow: hidden;
      background: pink;}
    li{
      width: 100px;
      text-align: center;
      float: left;
    }
    li>a{
      text-decoration: none;
      color: white;
      font-weight: bold;
      display: block;
    }
    a:hover{
      background: deeppink;
      color: #eee;
    }
  </style>

HTML 如下:

<div class="nav">
  <ul>
    <li><a href="">手机</a></li>
    <li><a href="">平板</a></li>
    <li><a href="">电脑</a></li>
  </ul>
</div>

效果如下:


浮动导航

17. 搜索框案例

CSS如下:

<style>
    *{
      margin: 0;
      padding: 0;}
    .search{
      position: relative;
      width: 250px;
      height: 40px;

    }
    .btn{
      position: absolute;
      width: 23px;
      height: 22px;
      background-image: url("../images/icon4.png");
      border: none;
      top: 0;
      bottom: 0;
      margin: auto;
      right: 10px;
    }
    .search>input{
      box-sizing: border-box;
      width: 250px;
      height: 40px;
      padding-left: 30px;
      background: #eee;
      border: none;
      outline: none;
      border-radius: 30px;
    }
  </style>

HTML如下:

<div class="search">
  <input type="text" placeholder="搜索">
  <button class="btn"></button>
</div>
</body>

效果如下:


搜索框
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容