Infi-chu:

http://www.cnblogs.com/Infi-chu/

CSS盒子模型
    概念:CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
    如下所示:
    
    不同部分的说明:
        Margin(外边距) - 清除边框外的区域,外边距是透明的。
        Border(边框) - 围绕在内边距和内容外的边框。
        Padding(内边距) - 清除内容周围的区域,内边距是透明的。
        Content(内容) - 盒子的内容,显示文本和图像。

元素的宽度和高度:
        例子:300px (宽)+ 50px (左 + 右填充)+ 50px (左 + 右边框)+ 50px (左 + 右边距)= 450px
        总结:
            最终元素的总宽度计算公式是这样的:总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
            元素的总高度最终计算公式是这样的:总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
    
CSS边框:
    边框样式:
        border-style属性用来定义边框的样式。
        常用的值:
            none: 默认无边框
            dotted: 定义一个点线边框
            dashed: 定义一个虚线边框
            solid: 定义实线边框
            double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
            groove: 定义3D沟槽边框。效果取决于边框的颜色值
            ridge: 定义3D脊边框。效果取决于边框的颜色值
            inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
            outset: 定义一个3D突出边框。 效果取决于边框的颜色值
            
    边框宽度:
        通过 border-width 属性为边框指定宽度。
        为边框指定宽度有两种方法:
            可以指定长度值,比如 2px 或 0.1em(单位为 px, pt, cm, em 等);
            或者使用 3 个关键字之一,它们分别是 thick 、medium(默认值) 和 thin。
        注:CSS 没有定义 3 个关键字的具体宽度,所以一个用户可能把 thick 、medium 和 thin 分别设置为等于 5px、3px 和 2px,而另一个用户则分别设置为 3px、2px 和 1px。

  1. p.one
  2. {
  3. border-style:solid;
  4. border-width:5px;
  5. }
  6. p.two
  7. {
  8. border-style:solid;
  9. border-width:medium;
  10. }

边框颜色:
        border-color属性用于设置边框的颜色。可以设置的颜色:
            name - 指定颜色的名称,如 "red"
            RGB - 指定 RGB 值, 如 "rgb(255,0,0)"
            Hex - 指定16进制值, 如 "#ff0000"
        注: border-color单独使用是不起作用的,必须得先使用border-style来设置边框样式。

  1. p.one
  2. {
  3. border-style:solid;
  4. border-color:red;
  5. }
  6. p.two
  7. {
  8. border-style:solid;
  9. border-color:#98bf21;
  10. }

单独设置各个边:
    border-style属性可以有1-4个值:
        border-style:dotted solid double dashed;
            上边框是 dotted
            右边框是 solid
            底边框是 double
            左边框是 dashed

border-style:dotted solid double;
            上边框是 dotted
            左、右边框是 solid
            底边框是 double

border-style:dotted solid;
            上、底边框是 dotted
            右、左边框是 solid

border-style:dotted;
            四面边框是 dotted
    
    常用边框属性:
        border     简写属性,用于把针对四个边的属性设置在一个声明。
        border-style     用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
        border-width     简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
        border-color     简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
        border-bottom     简写属性,用于把下边框的所有属性设置到一个声明中。
        border-bottom-color     设置元素的下边框的颜色。
        border-bottom-style     设置元素的下边框的样式。
        border-bottom-width     设置元素的下边框的宽度。
        border-left     简写属性,用于把左边框的所有属性设置到一个声明中。
        border-left-color     设置元素的左边框的颜色。
        border-left-style     设置元素的左边框的样式。
        border-left-width     设置元素的左边框的宽度。
        border-right     简写属性,用于把右边框的所有属性设置到一个声明中。
        border-right-color     设置元素的右边框的颜色。
        border-right-style     设置元素的右边框的样式。
        border-right-width     设置元素的右边框的宽度。
        border-top     简写属性,用于把上边框的所有属性设置到一个声明中。
        border-top-color     设置元素的上边框的颜色。
        border-top-style     设置元素的上边框的样式。
        border-top-width     设置元素的上边框的宽度。
        
CSS轮廓:
    CSS轮廓:
        轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用;CSS outline 属性规定元素轮廓的样式、颜色和宽度。
        如图所示:
    
    所有属性:
        属性                             说明                                             值                                         CSS
        outline             在一个声明中设置所有的轮廓属性     outline-color、outline-style、outline-width、inherit                 2
        outline-color             设置轮廓的颜色                 color-name、hex-number、rgb-number、invert、inherit                     2
        outline-style             设置轮廓的样式         none、dotted、dashed、solid、double、groove、ridge、inset、outset、inherit     2
        outline-width             设置轮廓的宽度                 thin、medium、thick、length、inherit                                 2
        
CSS外边距:
    margin:
        margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的;margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。
        如图所示:
    
        可以输入的值:
            值             说明
            auto     设置浏览器边距,这样做的结果会依赖于浏览器
            length     定义一个固定的margin(使用像素,pt,em等)
            %         定义一个使用百分比的边距
    
    单边 外边距属性:
        margin-top:100px;
        margin-bottom:100px;
        margin-right:50px;
        margin-left:50px;
    
    简写:
        margin:25px 50px 75px 100px;
            上边距为25px
            右边距为50px
            下边距为75px
            左边距为100px

margin:25px 50px 75px;
            上边距为25px
            左右边距为50px
            下边距为75px

margin:25px 50px;
            上下边距为25px
            左右边距为50px

margin:25px;
            所有的4个边距都是25px
            
CSS填充:
    Padding:
        当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充;单独使用 padding 属性可以改变上下左右的填充。
        如图所示:
    
        可以输入的值:
            值             说明
            length         定义一个固定的填充(像素, pt, em,等)
            %             使用百分比值定义一个填充
    
    填充 单边内边距:
        padding-top:25px;
        padding-bottom:25px;
        padding-right:50px;
        padding-left:50px;
        
    简写:
        padding:25px 50px 75px 100px;
            上填充为25px
            右填充为50px
            下填充为75px
            左填充为100px

padding:25px 50px 75px;
            上填充为25px
            左右填充为50px
            下填充为75px

padding:25px 50px;
            上下填充为25px
            左右填充为50px

padding:25px;
            所有的填充都是25px

CSS分组和嵌套:
    分组选择器:
        在样式表中有很多具有相同样式的元素;为了尽量减少代码,你可以使用分组选择器;每个选择器用逗号分隔。

  1. h1,h2,p
  2. {
  3. color:green;
  4. }

嵌套选择器:
        它可能适用于选择器内部的选择器的样式。

  1. /*
  2. p{ }: 为所有 p 元素指定一个样式。
  3. .marked{ }: 为所有 class="marked" 的元素指定一个样式。
  4. .marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式。
  5. p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式。
  6. */
  7. p
  8. {
  9. color:blue;
  10. text-align:center;
  11. }
  12. .marked
  13. {
  14. background-color:red;
  15. }
  16. .marked p
  17. {
  18. color:white;
  19. }
  20. p.marked{
  21. text-decoration:underline;
  22. }

CSS尺寸:
    常用属性:
        属性                 描述
        height             设置元素的高度。
        line-height     设置行高。
        max-height         设置元素的最大高度。
        max-width         设置元素的最大宽度。
        min-height         设置元素的最小高度。
        min-width         设置元素的最小宽度。
        width             设置元素的宽度。

CSS Display(显示) 与 Visibility(可见性):
    隐藏元素 - display:none或visibility:hidden:
        隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果;visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
        display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
        
        h1.hidden {visibility:hidden;}
        h1.hidden {display:none;}
        
    CSS Display - 块和内联元素:
        块元素是一个元素,占用了全部宽度,在前后都是换行符。
        块元素的例子:
            <h1>
            <p>
            <div>
        内联元素只需要必要的宽度,不强制换行。
        内联元素的例子:
            <span>
            <a>

如何改变一个元素显示:
        可以更改内联元素和块元素:
            把列表项显示为内联元素:
            li {display:inline;}
            
            把span元素作为块元素:
            span {display:block;}
            
CSS定位:
    五大属性:static、relative、fixed、absolute、sticky
    
    static定位:
        HTML元素的默认值,即没有定位,元素出现在正常的流中;静态定位的元素不会受到 top, bottom, left, right影响。

  1. div.static {
  2. position: static;
  3. border: 3px solid #73AD21;
  4. }

fixed定位:
        元素的位置相对于浏览器窗口是固定位置;即使窗口是滚动的它也不会移动

  1. p.pos_fixed
  2. {
  3. position:fixed;
  4. top:30px;
  5. right:5px;
  6. }

注:Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持;Fixed定位使元素的位置与文档流无关,因此不占据空间;Fixed定位的元素和其他元素重叠。
        
    relative 定位:
        相对定位元素的定位是相对其正常位置。

  1. h2.pos_left
  2. {
  3. position:relative;
  4. left:-20px;
  5. }
  6. h2.pos_right
  7. {
  8. position:relative;
  9. left:20px;
  10. }

absolute 定位:
        绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>:

  1. h2{
  2. position:absolute;
  3. left:100px;
  4. top:150px;
  5. }

注:absolute 定位使元素的位置与文档流无关,因此不占据空间;absolute 定位的元素和其他元素重叠。
    
    sticky 定位
        position: sticky; 基于用户的滚动位置来定位;粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换;它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;它会固定在目标位置;元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位;这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

  1. div.sticky {
  2. position: -webkit-sticky; /* Safari */
  3. position: sticky;
  4. top: 0;
  5. background-color: green;
  6. border: 2px solid #4CAF50;
  7. }

重叠的元素:
        元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素;z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面);一个元素可以有正数或负数的堆叠顺序
    
CSS Overflow:
    CSS overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条。
    
    属性:
            值             描述
        visible     默认值。内容不会被修剪,会呈现在元素框之外。
        hidden         内容会被修剪,并且其余内容是不可见的。
        scroll         内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
        auto         如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
        inherit     规定应该从父元素继承 overflow 属性的值。
        
CSS浮动:
    什么是浮动:
        CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。Float(浮动),往往是用于图像,但它在布局时一样非常有用。

  1. .eg
  2. {
  3. float:left;
  4. width:110px;
  5. height:90px;
  6. margin:5px;
  7. }

前端学习之路之CSS (四)的更多相关文章

  1. 前端学习之路之CSS (三)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 创建CSS有三种方法:外部样式表.内部样式表.内联样式.优先级:内联样式>内部样式>外部样式表> ...

  2. 前端学习之路之CSS (二)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ id选择器id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式,CSS 中 id 选择器以 &quo ...

  3. 前端学习之路之CSS (一)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 简介:    CSS 指层叠样式表 (Cascading Style Sheets)    样式定义如何显示 HT ...

  4. 前端学习之路-CSS介绍,Html介绍,JavaScript介绍

    CSS介绍 学前端必备掌握CSS样式,css为层叠样式表,用来定义页面的显示效果,加强用户的体验乐趣,那么如何用css到html中呢? style属性方式 利用标签中的style属性来改变显示样式 & ...

  5. jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路

    Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...

  6. FastAPI 学习之路(十四)响应模型

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  7. Day3前端学习之路——CSS基本知识

    课程目标 初步了解什么是CSS,掌握基本的CSS概念,语法,针对选择器特殊性的计算处理,以及学习如何设置一些简单的样式 任务一:回答问题 1.什么是CSS,CSS是如何工作的? CSS 指层叠样式表 ...

  8. 前端学习之路CSS基础学习二

    CSS属性相关 样式操作: (1)width:为元素设置宽度 (2)height:为元素设置高度 ps:块儿级标签才能设置长宽行内标签设置长宽没有任何影响 p{ width: 30px; height ...

  9. 前端学习之路CSS基础学习一

    CSS CSS定义如何显示HTML元素,当浏览器读到一个样式表,它就按照这个样式表来对文档进行格式化. CSS实例 每个CSS样式由两个组成部分:选择器和声明.声明又包括包括属性和属性值.每个声明之后 ...

随机推荐

  1. 在 iOS 中使用 iconfont

    如何使用自定义字体 在讲icon font之前,首先先来看看普通自定义字体是如何在ios中使用的,两个原理是一样的.这里以KaushanScript-Regular为例:   Step 1: 导入字体 ...

  2. springmvc常遇到的错误

    错误1: HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError ...

  3. TortoiseGit-2.0.0.0-64bit问题

    使用TortoiseGit拉取一个项目时,提示: disconnected no supported authentication methods available(server sent: pub ...

  4. 利用CSS 修改input=radio的默认样式(改成选择框)

    html部分: <input id="item2" type="radio" name="item"> <label fo ...

  5. 贪心--cf、education62-C

    cf-Education 62-C 题目 C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes i ...

  6. python怎么解决用matplotlib画图时无法显示中文的问题或者出现方框的问题

    在中文前面加上u 加上u以后如果还不可以显示中文显示了方框 就直接加上 from pylab import mpl mpl.rcParams['font.sans-serif']=['SimHei']

  7. Ribbon是什么?

    学而时习之,不亦说乎!                              --<论语> Ribbon使用版本2.2.2 Ribbon是什么? 开始接触Ribbon的时候,网上以及很 ...

  8. SVN无法读取cruuent修复方法

    解决方法:在网上百度和google了一大圈之后,终于得知是断电时current和txn-current文件没有写入当前最新版本号和最新版本的路径问题 当时非常抓狂,项目刷新一直为空. 1.先把curr ...

  9. shiro学习笔记_0700_整合ssm

    现在最流行的框架就是ssm,学到最后,shiro在实际开发中,也就的整合框架.首先spring是少不了的,shiro也提供了和spring的整合包. 首先,新建maven项目: maven依赖: &l ...

  10. Types的Type访问模式

    在Types类中定义的访问都类如下: 1.MapVisitor类 2.SimpleVisitor 3.UnaryVisitor 4.TypeRelation