04_CSS行高、盒子模型

CSS中的居中对齐

  • 内容居中对齐:text-align:center
  • 盒子居中对齐:margin:0 auto;

行高

  • 浏览器默认文字大小:16px
    行高:是基线与基线之间的距离

行高=文字高度+上下边距

注意:一行文字行高和父元素高度一致的时候,垂直居中显示。

  • 行高的单位
行高单位 文字大小
20px 20px 20px
2em 20px 40px
150% 20px 30px
2 20px 40px

总结:单位除了像素以为,行高都是与文字大小乘积。

父行高单位 父元素文字大小 子元素文字大小 子行高
40px 20px 30px 40px
2em 20px 30px 40px
150% 20px 30px 30px
2 20px 30px 60px

总结:
  上节已经讲过:行高大小会被继承
  不带单位时,行高是和子元素文字大小相乘,em和%的行高是和父元素文字大小相乘。行高以像素为单位,就是定义的行高值。
推荐行高使用像素为单位。

盒子模型

边框 border
  • Border-top-style:
      solid 实线
      dotted 点线
      dashed 虚线
  • Border-top-color 边框颜色
  • Border-top-width 边框粗细
        .box{
            width: 300px;
            height: 390px;
            background: #999;
            border-top-style: solid;    /*边框线型*/
            border-top-color: red;      /*边框颜色*/

            border-bottom-style: dotted;
            border-bottom-color: green;
            
            border-left-color: yellow;
            border-left-style: dashed;
            border-left-width: 10px;
        }
  • 边框属性的连写
    特点:没有顺序要求,线型为必写项。
border-right: blue solid 5px;
  • 四个边框值相同的写法
border: blue solid 5px;

特点:没有顺序要求,线型为必写项。

边框合并

border-collapse:collapse;

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        table{
            width: 500px;
            height: 300px;
            border:red solid 1px;
            border-collapse: collapse;
        }
        td{
            border:red solid 1px;

        }
    </style>
</head>
<body>
    <table cellspacing="0">
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</body>
</html>
边框合并,细线表格
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .username{
            border:0 none;
            outline-style: none;/*去掉轮廓线,轮廓线就是当输入框获得焦点时的边框线 */
            background: #eeccee;
            border: 1px dashed green;
        }
        .username:focus{
            background: #ddeedd;
        }
        .email{
            border: 0 none;
            outline-style: none;
            border-bottom:  1px dotted red;
        }
        .search{
            border: 0 none;
            outline-style: none;
            border:1px solid #999;
            background: url('search.png') no-repeat right;
        }
    </style>
</head>
<body>
    <label for="myuser">用户名:</label><input type="text" class="username" id="myuser"><br/>
    邮箱:<input type="text" class="email"><br/>
    搜索一下:<input type="text" class="search">
</body>
</html>

特别注意:
  获取焦点
  轮廓线
  取消边框的兼容性好的写法
  label for id的用法

内边距

padding-left | right | top | bottom

    .box{
            padding-left: 10px;
            padding-right: 20px;
            padding-top: 30xp;
            padding-bottom: 50px;
        }
  • padding连写

  • padding: 20px; 上右下左内边距都是20px

  • padding: 20px 30px; 上下20px 左右30px

  • padding: 20px 30px 40px; 上内边距为20px 左右内边距为30px 下内边距为40

  • padding: 20px 30px 40px 50px; 上20px 右30px 下40px 左 50px

  • 内边距撑大盒子的问题
    影响盒子宽度或高度的因素:
      内边距影响盒子的宽度或高度
      边框影响盒子的宽度或高度

盒子的宽度=定义的宽度+边框宽度+左右内边距

提问:

一个大盒子宽度500px,高度300px.一个小盒子宽度300px,高度150px.请画出让小盒子在大盒子内部居中。

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .min{
            width: 300px;
            height: 150px;
            background: #eeffee;
        }
        .box{
            width: 300px;
            height: 150px;
            padding-left: 100px;
            padding-top: 75px;
            padding-bottom: 75px;
            padding-right: 100px;
            background: #ffeeff;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="min"></div>
    </div>
</body>
</html>
  • 继承的盒子一般不会被撑大
    包含(嵌套)的盒子,如果子盒子没有定义宽度,给子盒子设置左右内边距,一般不会撑大盒子。(水平方向不会被撑大,垂直方向会)
练习
  • 新浪导航条
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .nav{
            height: 40px;
            background: #eee;
            border-top: 3px orange solid;
            border-bottom:1px solid #aaa;
        }
        .nav-con{
            width: 1000px;
            /*background: #aaa;*/
            height: 100%;
            margin 0 auto;
            
        }
        a{
            font:12px 微软雅黑;
            color: #444;
            display: inline-block;
            height: 40px;
            text-decoration: none;
            line-height: 40px;
            padding: 0 12px;
        }
        a:hover{
            background: #bbb;
        }
    </style>
</head>
<body>
    <div class="nav">
        <div class="nav-con">
            <a href="#">设为首页</a>
            <a href="#">手机新浪网</a>
            <a href="#">移动客户端</a>
        </div>
    </div>
</body>
</html>
外边距

margin-left | right | top | bottom

  • 外边距连写
  • margin: 20px; 上下左右外边距20PX
  • margin: 20px 30px; 上下20px 左右30px
  • margin: 20px 30px 40px; 上20px 左右30px 下 40px
  • margin: 20px 30px 40px 50px; 上20px 右30px 下40px 左50px
  • 垂直方向外边距合并
    垂直方向的两个盒子一个设置上外边距,一个设置下外边距,取的设置较大的值。
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .one{
            width: 200px;
            height: 200px;
            background: orange;
            margin-bottom: 20px;
        }
        .two{
            width: 200px;
            height: 180px;
            background: yellow;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div class="one"></div>
    <div class="two"></div>
</body>
</html>

1. 实践上上面两个盒子垂直方向间距只有50px;因为浏览器做了优化。
  2. 边距合并问题只发生在块级元素之间

  • 嵌套的盒子外边距塌陷
    嵌套的盒子,直接给子盒子设置处置方向外边距的时候,会发生外边距塌陷
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .father{
            width: 300px;
            height: 300px;
            background: pink;
        }
        .son{
            width: 100px;
            height: 100px;
            background: yellow;
            margin-top: 80px;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>
外边距塌陷

解决方法:
  1 给父盒子设置边框
  2 给父盒子overflow:hidden;
   bfc 格式化上下文

行内元素可以定义左右的内外边距,上下会被忽略掉。
行内块可以定义内外边距

Fireworks的基本使用

新建文件 ctrl+n
打开文件 ctrl+o
调出和隐藏标尺 ctrl+r
清除辅助线: 视图---辅助线----清除辅助线
放大镜 z 放大镜状态下alt+鼠标左键 缩小
抓手 快捷键 空格
测量距离:
  ★先拉出2根辅助线
  ★切换到指针工具
  ★将光标放到2根辅助线之间,按住shift键

练习
  • 行业动态


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .news{
            width: 238px;
            height: 166px;
            border: 1px solid #D9E0EE;
            border-top: 3px solid #FF8400;
            margin: 0 auto;
        }
        .news-title{
            height: 35px;
            line-height: 35px;
            padding-left: 12px;
            border-bottom: 1px solid #D9E0EE;
        }
        ul,li{
            list-style: none;
            margin: 0;
            padding: 0;
        }
        ul{
            margin-top: 8px;
        }
        li{
            padding-left: 19px;
            background: url('li_bg.jpg') no-repeat 9px 11px;
            line-height: 23px;
            font-size: 13px;
        }
        a{
            text-decoration: none;
        }
        a:link{
            color: #666;
        }
        a:hover{
            color: blue;
        }
    </style>
</head>
<body>
    <div class="news">
        <div class="news-title">行业动态</div>
        <ul>
            <li><a href="#">这就是行业内的动态</a></li>
            <li><a href="#">这就是行业内的动态</a></li>
            <li><a href="#">这就是行业内的动态</a></li>
            <li><a href="#">这就是行业内的动态</a></li>
            <li><a href="#">这就是行业内的动态</a></li>
        </ul>
    </div>
</body>
</html>
  • 爱宠知识


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        body , ul , li{
            margin: 0;
            padding: 0;
        }
        .content{
            width: 260px;
            height: 327px;
            margin: 0 auto;
            border:  1px solid #009900;
            background: url('bg.gif');
        }
        .content .title{
            height: 23px;
            margin: 10px 0px 5px 10px;
            border-left: 4px solid #C9E143;
            font: 16px 微软雅黑;
            padding-left: 11px;
            color: #fff;
        }
        ul{
            background: #fff;
            /*height: 279px;*/
            margin-left: 10px;
            margin-right: 10px;
        }
        ul,li{
            list-style: none;
        }
        li{
            height: 30px;
            border-bottom: 1px dashed #999;
            margin:0 10px;
            background: url('tb.gif') no-repeat left center;
            padding-left: 16px;
        }
        li a{
            line-height: 31px;
            text-decoration: none;
            color: #0066CC;
        }

    </style>
</head>
<body>
    <div class="content">
        <div class="title">爱宠知识</div>
        <ul>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
            <li><a href="#">其实养猫比养狗咬好的多</a></li>
        </ul>
    </div>
</body>
</html>
  • 个人资料


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        /*body{
            margin: 0;
            padding:0;
        }*/
        .content{
            width: 208px;
            height: 384px;
            margin: 0 auto;
            border:1px solid #CECECE;
        }
        .title{
            background: #ECEDEE;
            padding-left: 9px;
            height: 25px;
            font:12px/25px 微软雅黑;
            color: #686868;
        }
        .content .pic{
            width: 180px;
            height: 180px;
            border: 1px solid #CECECE ;
            margin:10px 0px 11px 13px;
        }
        .content .blink{
            height: 31px;
            text-align: center;
            font-size: 14px;
            color: #9090AA;
        }
        .content .blink img{
            margin-left: 10px;
        }
        .content .weibo{
            height: 38px;
            text-align: center;
            border-bottom: 2px dotted #D1D1D1;
            margin:0px 14px 15px 13px;
        }
        .content .weibo input{
            background: #EEEEF2 url('vb.jpg') no-repeat 2px center;
            width: 69px;
            height: 23px;
        }
        .content .friend{
            text-align: center;
            margin-left: 13px;
            margin-right: 14px;
            /*border-bottom: 1px dotted #D1D1D1;*/
        }
        .content .friend input{
            width: 69px;
            height: 23px;
            margin-bottom: 5px;

        }
    </style>
</head>
<body>
    <div class="content">
        <div class="title">
            个人资料
        </div>
        <div class="pic">
            ![](1.jpg)
        </div>
        <div class="blink">
            V闪闪
            ![](v.jpg)
        </div>
        <div class="weibo">
            <input type="button" value="微博">
        </div>
        <div class="friend">
            <input type="button" name="" value="加好友">
            <input type="button" name="" value="发纸条">
            <input type="button" name="" value="写留言">
            <input type="button" name="" value="加关注">
        </div>
    </div>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容