CSS入门

1. CSS简介

css2.1是目前世界上应用最广泛的版本,2011年开始css被分为多个模块单独升级,统称为CSS3,现在已经有很多模块升级到了CSS4。css文档

2. 编写CSS的第一步

给你要写的css标签加上border
border:1px solid red;
让你知道它在哪、它的大小、形状

3. 使导航栏横着在同一行

给所有li加上cssfloat:left;,然后给ul加上class:clearfix,下面是clearfix的css

.clearfix::after{
  content: "";
  display: block;
  clear: both;
}

方法二:给ul加上display:flex
若想让li在同一行里平均分布,见下面6.5

4. 高度

div(块级元素):高度是由内部文档流元素高度的总和决定的。文档流:文档内元素的流动方向,内联元素是从左往右,块级元素是从上往下
span(内联元素):高度是由其中文字高度决定的,内联元素设置width和height是无效的,上下的margin和padding也无效,要将它们设为display:inline-block才有效。

5. 小提醒

尽量不写height和width,这两个属性会引出很多bug,要宽高的时候可以用padding,但img最好先写width,因为可以先占位,因为引用图片时浏览器不知道图片大小,所有等图片下载完成,它后面的元素又要重新排位置,若先写好width,则不用重排,知道height也可以先写好height。
另外span元素设置padding的时候要将它设为display:inline-block,因为内联元素不能设置宽高,inline-block具有inline的同行特性,也具有block的高度特性。
对于display:inline(内联元素)的元素,设置width/height/上下margin和padding都是无效的

6. 居中

1. 垂直居中

  1. 若父元素没有写height,则直接在父元素写

    padding: 10px 0;
    

    子元素就可以居中,所以尽量避免父亲高度确定

  2. 让一个元素在父级元素中绝对居中
    方法一:
    给父级元素加:

    position:relative;   //若父级元素是body可以不用
    加
    

    再给自己加:

    div{
     position: absolute;
     top: 0;
     left: 0;
     bottom: 0;
     right: 0;
     margin: auto;
    }
    

    方法二:(若不兼容IE,工作中只要用这一种方法即可,最简单,Chrome,移动端都可以用)
    给父元素加:

    display: flex;               //让它变成一个弹性盒
    justify-content: center;     //水平居中
    align-items: center;         //垂直居中
    
  3. table自带居中(兼容IE)

    <html>
    <style>
    .parent{
      border: 1px solid red;
      height: 600px;
    }
    .child{
      border: 1px solid green;
    }
    </style>
    <body>
    <table class="parent">
      <tr>
        <td class="child">
          文字
        </td>
      </tr>
    </table>
    </body>
    </html>
    

    文字会居中

  4. 用div假扮table(兼容IE)

    <html>
    <style>
    div.table{
      display: table;
      border: 1px solid red;
      height: 600px;
    }
    
    div.tr{
      display: table-row;
      border: 1px solid green;
    }
    
    div.td{
      display: table-cell;
      border: 1px solid blue;
      vertical-align: middle;
    }
    
    </style>
    <body>
    <div class="table">
        <div class="tr">
          <div class="td">
            文字
          </div>
        </div>
      </div>
    </body>
    </html>
    
  5. 用100%高度的before和after

    .parent{
      border: 3px solid red;
      height: 600px;
      text-align: center;
    }
    
    .child{
      border: 3px solid black;
      display: inline-block;
      width: 300px;
      vertical-align: middle;
    }
    
    .parent:before{
      content:'';
      display: inline-block;
      height: 100%;
      vertical-align: middle;
    }
    .parent:after{
      content:'';
      display: inline-block;
      height: 100%;
      vertical-align: middle;
    }
    
  6. 绝对定位加上margin-top: -自身height的50%

    <html>
    <style>
    .parent{
      height: 600px;
      border: 1px solid red;
      position: relative;
    }
    .child{
      border: 1px solid green;
      width: 300px;
      height: 20px;
      position: absolute;
      top: 50%;  
      left: 50%;
      //第一种写法:margin-left: -150px; margin-top: -10px;
      //第二种写法:transform: translate(-50%,-50%)
      //第三种写法:top: calc(50% - 10px);   left: calc(50% - 150px);
      text-align: center;
    }
    </style>
    <body>
    <div class="parent">
      <div class="child">
        文字
      </div>
    </div>
    </body>
    </html>
    
  7. 让一个背景图居中,并且让它自适应屏幕

    background: url("wallhaven-w-min.jpg") no-repeat center center ;
    background-size: cover;
    

2. 水平居中

  1. 块级元素水平居中

    margin-left:auto;
    margin-right:auto;
    
  2. 内联元素水平居中,给它们的父元素加上

    text-align:center;
    

    若不是内联元素想让它居中,可加display:inline-block,加了之后一般还要加下面这句,不然可能会有bug(下面可能会空出一行)

    vertical-align: top;
    
  3. 让导航栏横过来,并在同一行里均匀分布
    给ul加css

    ul{
      display:flex;  
      justyfy-content:space-between;
    }
    

    去掉li的float:left
    去掉ul的clearfix

7. 用css做三角形

  1. 等腰三角形:
div{
  border:50px solid transparent;
  width:0;
  height:0;
  border-bottom-color:red;
}
  1. 增高三角形
div{
  border: 50px solid transparent;
  width: 0;
  height: 0;
  border-bottom: 100px solid red;  //只需增加这个border的厚度
}
  1. 直角三角形:
div{
  border:50px solid transparent;
  width:0;
  height:0;
  border-top-width:0;
  border-left-color:red;
}
  1. 不规则三角形
//还有这种操作!
div{
  width: 0;
  height: 0;
  border-top: 30px solid black;
  border-left: 30px solid transparent;
  border-right: 40px solid transparent;
}

8. 梯形

div{
  width:50px;
  height: 42px;
  border: 18px solid transparent;
  border-top: 18px solid black;
}

9. 怎样脱离文档流

  1. 相对于窗口定位:
    position:fixed
  2. 相对于父级元素定位:
    在父级元素加上:position:relative
    给自己加上:position:absolute(绝对定位后元素会变成display:block)

10. 使用::before和::after时

要加上这两行的代码,才会显示内容

content: "";
display:block;  //如果是绝对定位就不用加,因为绝对定位是display:block;

而且before和after是不受*管束的,例如

*{
  box-sizing: border-box;
}
//设置了这个,但是对before和after无效,给它们加border它们还是会变化大小

//除非这样
*::after{
    box-sizing: border-box;
}
*::before{
    box-sizing: border-box;
}

11. 图片的轮播

<html>

<div class="window">
    <div class="images" id=images>
        <img1>
        <img2>
        <img3>
    </div>
</div>

<css>
要给window的div和每个img都定好宽高!并给window加上overflow:hidden

.images{
    display: flex;    //给image的div加上这个图片才能横这放!
}
.images > img{
    width: 100%;
}

12. box-shadow

box-shadow: -16px 0 16px 1px rgba(102,102,102,0.4);

第一个值代表阴影左右偏移,正数往右,负数往左
第二个值代表上下偏移,正往下,负往上
第三个值越大,模糊面积越大越淡
第四个值取正值时,阴影扩大,取负值时,阴影收缩

13. calc

//css3新属性,绝对定位的时候
left: calc(50% - 8px)  //元素的左边在父元素的中间偏左8px

14. 消除默认样式

*{
  margin: 0;
  padding: 0;
}

*,
*::before,
*::after{
  box-sizing: border-box;
}

a{
    text-decoration: none;  //  去掉下划线
}

ul,ol{
    list-style: none;
}

button{
    outline: none;
}

15. img 等比例自动缩放

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,441评论 0 5
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,550评论 0 30
  • 1.“懒蚂蚁效应”的故事 生物学家发现,大部分蚂蚁都很勤快地寻找、搬运食物,少数蚂蚁却整日无所事事、东张西望。人们...
    还有束光阅读 2,197评论 12 62
  • 选译自村上春树的问答栏目(http://www.welluneednt.com) 本篇原文:http://www....
    阿道阅读 833评论 0 9