web前端笔记2:CSS入门

2016-03-24  本文已影响145人  简单才快乐

学习和完成任务二的笔记
任务二:零基础HTML及CSS编码(一)

学习的资料

css介绍

/*内联式,直接写在标签中*/
<span style="color:blue;">超酷的互联网</span>
/*内嵌式,写在html文件中*/
<head>
    ......
    <style type="text/css">
        span{color:blue;}
    </style>
</head>
/*外联式,写在单独文件中,如上段中介绍的用法*/
<p class="key" id="principal">`

类选择器 在一个CSS样式表中, 下面的规则将使所有class属性等于key的元素文字颜色呈现绿色。(这些元素不一定都是<p>元素。)。一个标签可以有多个类用空格隔开

.key { color: green;}

id选择器 下面的规则将使 id 等于 principal 的那个元素的文字变为粗体。同一html文件中 id必须唯一

#principal { font-weight: bolder;}

:before :after 在元素前面或者后面加元素

a:hover{color:red:} /*鼠标移动到链接上时链接文字变红*/
选择器 选择的元素
A E 任何是元素A的后代元素E (后代节点指A的子节点,子节点的子节点,以此类推)
A > E1 任何元素A的子元素
E:first-child 任何元素的第一个子元素E
B + E 任何元素B的下一个兄弟元素E
B ~ E B元素后面的拥有共同父元素的兄弟元素E

你可以任意组合以表达更复杂的关系。
你还可以使用星号(*)来表示”任意元素“。

h1,span{color:red;} /*使用这种写法为多个选择器设置相同规则*/
p{color:red!important}

常用属性

属性 代码 说明
字体 {font-family:"宋体";} -
字号 {font-size:12px} -
颜色 {color:#ffffff} 颜色表示有多种:#ffffff,rgb{0,0,0},red
加粗 {font-weight:bold;} -
斜体 {font-style:italic;} -
下划线 {text-decoration:underline;} -
删除线 {text-decoration:line-through;} -
缩进 {text-indent:2em;} -
行间距 {line-height:3em;} -
字间距 {letter-spacing:20px;} -
对齐 {text-align:center;} -
背景色 {background:pink;} -
设置成块 {display:block;} -
设置成内联元素 {display:inline;} -
设置成内联块 {display:inline-block;} -
{width:30px;} -
{height:30px;} -

盒模型

a{display:block;} /*将a标签设置成块级元素*/

每个块级元素都从新的一行开始,并且其后的元素也另起一行。元素的高度、宽度、行高以及顶和底边距都可设置。元素宽度在不设置的情况下,是它本身父容器的100%。

p{display:inline;} /*将p标签设置成内联元素*/

和其他元素都在一行上;元素的高度、宽度及顶部和底部边距不可设置;元素的宽度就是它包含的文字或图片的宽度,不可改变。

display:inline-block;

和其他元素都在一行上;元素的高度、宽度、行高以及顶和底边距都可设置。

/* dashed(虚线)| dotted(点线)| solid(实线)。 */
div{
    border-width:2px;
    border-style:solid;
    border-color:red;
}
/* 可简写为如下 */
div{border:2px solid red;}
/* 可单独设置某一边框,使用如下属性名 */
border-bottom border-top border-right border-left
/*  */
div{
    width:200px;
    height: 20px;
}
div{padding:20px 10px 15px 30px;}
/*  也可以分开写,如下 */
div{
   padding-top:20px;
   padding-right:10px;
   padding-bottom:15px;
   padding-left:30px;
}
/* 如果上、右、下、左的填充都为10px;可以这么写 */
div{padding:10px;}
/* 如果上下填充一样为10px,左右一样为20px,可以这么写*/
div{padding:10px 20px;}

布局模型

/* 这样设置元素浮动 */
div1{float:left;}
div{
  position:absolute;
  top:20px;
  right:100px;
  bottom:30px;
  left:50px;
}

2、相对定位(position: relative)
设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。
3、固定定位(position: fixed)
与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。与background-attachment:fixed;属性功能相同。以下代码可以实现相对于浏览器视图向右移动100px,向下移动50px。并且拖动滚动条时位置固定不变。

#div1{
    position:fixed;
    left:100px;
    top:50px;
}

水平居中设置

  1. 行内元素
    如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。如下代码:
div.txtCenter{ text-align:center; }
  1. 定宽块状元素
    满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。
margin:20px auto;
  1. 不定宽块状元素
    有三种方式。方式一如下
/* 第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>、<tr>、<td> )。
第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。 */
<div>
<table margin:0px auto>
<tbody>
  <tr>
    <td>
      <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
       </ul>
      </td>
    </tr>
</tbody>
</table>
</div>

第二种方法:改变块级元素的 display 为 inline 类型,然后使用 text-align:center 来实现居中效果。
方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

垂直居中设置

  1. 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。
.wrap h2{
    margin:0;
    height:100px;
    line-height:100px;
    background:#ccc;
}
  1. 父元素高度确定的多行文本(方法一):使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。
    说到竖直居中,css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。所以将在居中的元素放在td中,将td设置一个高度,再设置 vertical-align:middle(默认已为middle)。
  2. 父元素高度确定的多行文本(方法二):在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式。
.container{
    height:300px;
    background:#ccc;
    display:table-cell;/*IE8以上及Chrome、Firefox*/
    vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}

隐性改变display类型

有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:
position : absolute
float : left 或 float:right
元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。

上一篇 下一篇

猜你喜欢

热点阅读