前端基础学习-css基础笔记

文字排版

  • 字体
    font-family:”Microsoft Yahei”;
    font-family:”微软雅黑”;

  • 字号、颜色
    body{font-size:12px;color:#666}

  • 粗体
    p span{font-weight:bold;}

  • 斜体
    p a{font-style:italic;}

  • 下划线
    p a{text-decoration:underline;}

  • 删除线
    .oldPrice{text-decoration:line-through;}

  • 缩进
    p{text-indent:2em;}

  • 行间距(行高)
    p{line-height:2em;}

  • 中文字间距、字母间距
    h1{letter-spacing:50px;} //字母与字母之间的间距
    h1{word-spacing:50px;} //英文单词之间的间距

段落排版

  • 对齐
    h1{text-align:center;}
    元素分类:分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。;
    常用的块状元素有:
<div><p><h1>...<h6><ol><ul><dl><table><address><blockquote><form>
    常用的内联元素有:
<a><span><br><i><em><strong><label><q><var><cite><code>
    常用的内联块状元素有:
<img><input>
  • 块级元素
    块级元素特点:
    1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
    3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
    可以通过display:block;将元素显示为块级元素

  • 内联元素(行内元素)
    块状元素也可以通过代码display:inline将元素设置为内联元素
    如: div{display:inline;};
    内联元素特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度及顶部和底部边距不可设置;
    3、元素的宽度就是它包含的文字或图片的宽度,不可改变。
    小技巧:内联元素之间有一个间距问题解决方法;
    1,去除元素与元素的键的换行符如:
    44444555555;
    2,使用font-size:0
    对所有的行级元素添加字体大小,他们的父类添加字体大小为0
    eg:

<div>
    <a>1a>
    <a>2a>
    <span>33333span>
    <span>44444span><em>555555em>
div>

div{font-size:0;}
a,span,em{font-size:16px;}
  • 内联块状元素
    内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),、标签就是这种内联块状标签。
    inline-block 元素特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
<a>display:inline-block;a>  // a是行内元素默认不可以设置宽高,但是转换成内联块元素后就可以设置

盒子模型

    内填充:padding;一个盒子模型和另一个盒子模型的间距叫外边距:margin;盒子的边框:border。这三个元素都有四个方向:top;right;bottom;left。(例如:padding-top)
  • 边框(一)
    盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)
    两种写法:
    1,div{border:2px solid red;}
    2,div{
    border-width:2px;
    border-style:solid;
    border-color:red;
    }
    注意:
    border-style(边框样式)常见样式有:dashed(虚线)| dotted(点线)| solid(实线)。;

  • 边框(二)
    单独设置下边框,而其它三边都不设置边框样式

div{border-bottom:1px solid red;}
  • 宽度和高度
    元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界 –> margin + border_width + padding + width

  • 填充
    元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。设置padding
    div{padding:20px 10px 15px 30px;}//记住是上右下左

  • 边界
    元素与其它元素之间的距离可以使用边界(margin)来设置。边界也是可分为上、右、下、左. 设置margin

div{margin:20px 10px 15px 30px;}
div{
   margin-top:20px;
   margin-right:10px;
   margin-bottom:15px;
   margin-left:30px;
}

css布局模型

        1、流动模型(Flow)
        2、浮动模型 (Float)
        3、层模型(Layer)

流动模型:流动(Flow)是默认的网页布局模式。;
第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。如右侧代码编辑器中三个块状元素标签(div,h1,p)宽度显示为100%。
第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行
浮动模型
块状元素这么霸道都是独占一行,如果现在我们想让两个块状元素并排显示设置元素浮动就可以实现这一愿望。

div{
    width:200px;
    height:200px;
    border:2px red solid;
    float:left;
}
<div id="div1">div>
<div id="div2">div>
        任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。

层模型:和图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作.
层模型有三种形式:
1、绝对定位(position: absolute)
2、相对定位(position: relative)
3、固定定位(position: fixed)
绝对定位
1,需要设置position:absolute(表示绝对定位)
2,使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位
相对定位
1,需要设置position:relative(表示相对定位)
2,通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置
注:相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。
固定定位
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身
注:不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响;
Relative与Absolute组合使用

            #box3{
                width:200px;
                height:200px;
                position:relative;       
            }
            #box4{
                width:99%;

                position:absolute;
                bottom:0px;
                left:0px;
            }
            <div id="box3">
                "http://img.mukewang.com/541a7d8a00018cf102000200.jpg">
            <div id="box4">当我还是三年级的学生时是一个害羞的小女生。div>

盒模型代码简写
1、如果top、right、bottom、left的值相同
margin:10px 10px 10px 10px; –> margin:10px;
2、如果top和bottom值相同、left和 right的值相同
margin:10px 20px 10px 20px; –> margin:10px 20px;
3、如果left和right的值相同
margin:10px 20px 30px 20px; –> margin:10px 20px 30px;
字体缩写

body{
    font-style:italic;
    font-variant:small-caps; 
    font-weight:bold; 
    font-size:12px; 
    line-height:1.5em; 
    font-family:"宋体",sans-serif;
}  
        缩写为:
body{
    font:italic  small-caps  bold  12px/1.5em  "宋体",sans-serif;
}
   注意:1、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。
        2、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。
  • 长度值
    1、像素:指的是显示器上的小点(CSS规范中假设“90像素=1英寸”)。实际情况是浏览器会使用显示器的实际像素值有关,在目前大多数的设计者都倾向于使用像素(px)作为单位。
    2、em:就是本元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px;如果 font-size 为 18px,那么 1em = 18px。;
    p{font-size:12px;text-indent:2em;}
    注意一个特殊情况:当给 font-size 设置单位为 em 时,此时计算的标准以 p 的父元素的 font-size 为基础。
    3、百分比
    p{font-size:12px;line-height:130%}
    设置行高(行间距)为字体的130%(12 * 1.3 = 15.6px)。
  • 水平居中设置
    行内元素:水平居中是通过给父元素设置 text-align:center
    定宽块状元素
    满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的,二者缺一不可.
div{
    border:1px solid red;
    width:500px;//定宽
    margin:20px auto;//margin auto
}

不定宽块状元素方法(一)
方法1 : 使用table标签
第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 、、 )。
第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。
代码如下:

<div>
<table>
  <tbody>
    <tr><td>
    <ul>
        <li><a href="#">1a>li>
        <li><a href="#">2a>li>
        <li><a href="#">3a>li>
    ul>
    td>tr>
  tbody>
table>
div>


table{
    margin:0 auto;
}

ul{list-style:none;margin:0;padding:0;}
li{float:left;display:inline;margin-right:8px;}

方法二:设置 display;inline 方法;

//自己写的:必须有子标签包裹;
.wrap{
    background:#ccc;
    display:inline;
    text-align:center;
}
<div class="wrap">
    <p>设置我所在的div容器水平居中p>
div>

.container{text-align:center;}
.container ul{list-style:none;margin:0;padding:0;display:inline;}
.container li{margin-right:8px;display:inline;} 
    //把块级元素变成行内元素

<div class="container">
    <ul>
        <li><a href="#">1a>li>
        <li><a href="#">2a>li>
        <li><a href="#">3a>li>
    ul>
div>

方法三:设置 position:relative 和 left:50%;
通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

  • 垂直居中
    父元素高度确定的单行文本
    父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。
    父元素高度确定的多行文本(方法一)
    使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。竖直居中,css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。
    td 标签默认情况下就默认设置了 vertical-align 为 middle
    注:td是行垂直居中,th是行垂直居中加粗;
    父元素高度确定的多行文本(方法二)
    在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式。

  • 隐性改变display类型
    当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:
    1,position : absolute
    2,float : left 或 float:right
    元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。(测试:只能单个改变长或者宽.不能同时改变);

你可能感兴趣的:(前端基础学习-css基础笔记)