Loading

CSS 学习笔记 2

 CSS Table(表格)

表格边框  border: 1px solid black;

边框共享  border-collapse:collapse;

表格宽度和高度   Width和height属性定义表格的宽度和高度。

表格文字对齐    表格中的文本对齐和垂直对齐属性。

text-align: 属性设置水平对齐方式,向左,右,或中心:
vertical-align: 垂直对齐属性设置垂直对齐,比如顶部,底部或中间:top middle bottom

表格填充 如果在表的内容中控制空格之间的边框,应使用td和th元素的填充属性:padding

表格颜色 下面的例子指定边框的颜色,和th元素的文本和背景颜色:

<style>
#customers
{
    font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
    width:100%;
    border-collapse:collapse;
}
#customers td, #customers th 
{
    font-size:1em;
    border:1px solid #98bf21;
    padding:3px 7px 2px 7px;
}
#customers th 
{
    font-size:1.1em;
    text-align:left;
    padding-top:5px;
    padding-bottom:4px;
    background-color:#A7C942;
    color:#ffffff;
}
#customers tr.alt td 
{
    color:#000000;
    background-color:#EAF2D3;
}
</style>

CSS 盒子模型

 

 

 边距,边框,填充,和实际内容。

  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。

最终元素的总宽度计算公式是这样的:

总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

元素的总高度最终计算公式是这样的:

总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

CSS Border(边框)

属性描述
border 简写属性,用于把针对四个边的属性设置在一个声明。border:5px solid red;
border-style 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
border-width 简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
border-color 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom 简写属性,用于把下边框的所有属性设置到一个声明中。border-top -left -right

注意:"border-left-width" 单独使用没有效果.要先使用 "border-style" 属性设置borders.

CSS 轮廓(outline)属性

轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

轮廓(outline)属性指定元素轮廓的样式、颜色和宽度。

outline是不占空间的,既不会增加额外的width或者height(这样不会导致浏览器渲染时出现reflow或是repaint)

CSS margin(外边距)  padding(填充)

margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。

当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。

margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。
单独使用 padding 属性可以改变上下左右的填充。

 

margin padding属性可以有一到四个值。

  • margin:25px 50px 75px 100px;  
  • margin:25px 50px 75px;
  • margin:25px 50px;
  • margin:25px;

CSS 分组和嵌套

每个选择器用逗号分隔。h1,h2,p { color:green; }

  • p{ }: 为所有 p 元素指定一个样式。
  • .marked{ }: 为所有 class="marked" 的元素指定一个样式。
  • .marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式。
  • p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式。

CSS 尺寸 (Dimension)

属性描述
height 设置元素的高度。
line-height 设置行高。
max-height 设置元素的最大高度。
max-width 设置元素的最大宽度。
min-height 设置元素的最小高度。
min-width 设置元素的最小宽度。
width 设置元素的宽度。

 

CSS Display(显示)

隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间

display:none 元素不再占用空间

h1.hidden {visibility:hidden;}

h1.hidden {display:none;}

CSS Display - 块和内联元素

块级元素(block)特性:

  • 总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;
  • 宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;

内联元素(inline)特性:

  • 和相邻的内联元素在同一行;
  • 宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变,就是里面文字或图片的大小;

块级元素主要有:

  •  address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li

内联元素主要有:

  • a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,textarea , tt , u , var

可变元素(根据上下文关系确定该元素是块元素还是内联元素):

  • applet ,button ,del ,iframe , ins ,map ,object , script

CSS中块级、内联元素的应用:

利用CSS我们可以摆脱上面表格里HTML标签归类的限制,自由地在不同标签/元素上应用我们需要的属性。

主要用的CSS样式有以下三个:

  • display:block  -- 显示为块级元素
  • display:inline  -- 显示为内联元素
  • display:inline-block -- 显示为内联块元素,表现为同行显示并可修改宽高内外边距等属性

我们常将所有<li>元素加上display:inline-block样式,原本垂直的列表就可以水平显示了。

CSS Position(定位)

  • static     无特殊定位,遵循正常的文档流对象:
  • relative  相对定位元素的定位是相对其正常位置。移动相对定位元素,但它原本所占的空间不会改变。
  • fixed      即使窗口是滚动的它也不会移动:
  • absolute 绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>:
  • sticky     它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

重叠的元素  z-index

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

一个元素可以有正数或负数的堆叠顺序:

 

属性说明
bottom 定义了定位元素下外边距边界与其包含块下边界之间的偏移。
clip 剪辑一个绝对定位的元素
cursor 显示光标移动到指定的类型
left 定义了定位元素左外边距边界与其包含块左边界之间的偏移。
overflow 设置当元素的内容溢出其区域时发生的事情。
overflow-y 指定如何处理顶部/底部边缘的内容溢出元素的内容区域
overflow-x 指定如何处理右边/左边边缘的内容溢出元素的内容区域
position 指定元素的定位类型
right 定义了定位元素右外边距边界与其包含块右边界之间的偏移。
top 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。
z-index 设置元素的堆叠顺序

CSS Overflow

用于控制内容溢出元素框时显示的方式。

visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

CSS Float(浮动)

会使元素向左或向右移动,其周围的元素也会重新排列。  left   right  none

清除浮动 - 使用 clear    clear:both;

元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。

clear 属性指定元素两侧不能出现浮动元素。  使用 clear 属性往文本中添加图片廊:

CSS 对齐

元素居中对齐   margin: auto;。  要水平居中对齐一个元素(如 <div>), 可以使用   尝试一下 »

.center { margin: auto; width: 50%; border: 3px solid green; padding: 10px; }

注意: 如果没有设置 width 属性(或者设置 100%),居中对齐将不起作用。

文本居中对齐  text-align: center;  尝试一下 »

 

.center { text-align: center; border: 3px solid green; }

提示: 更多文本对齐实例,请参阅 CSS 文本 章节。

图片居中对齐   margin: auto; 并将它放到  元素中:

img { display: block; margin: auto; width: 40%; }

尝试一下 »

左右对齐 - 使用定位方式   position: absolute;

.right { position: absolute; right: 0px; width: 300px; border: 3px solid #73AD21; padding: 10px; }

尝试一下 » 

注释:绝对定位元素会被从正常流中删除,并且能够交叠元素。

提示: 当使用 position 来对齐元素时, 通常 <body> 元素会设置 margin 和 padding 。 这样可以避免在不同的浏览器中出现可见的差异。 

尝试一下 »

左右对齐 - 使用 float 方式

.right { float: right; width: 300px; border: 3px solid #73AD21; padding: 10px; }

尝试一下 » 

当像这样对齐元素时,对 <body> 元素的外边距和内边距进行预定义是一个好主意。这样可以避免在不同的浏览器中出现可见的差异。

注意:如果子元素的高度大于父元素,且子元素设置了浮动,那么子元素将溢出,这时候你可以使用 "clearfix(清除浮动)" 来解决该问题。

我们可以在父元素上添加 overflow: auto; 来解决子元素溢出的问题:  .clearfix { overflow: auto}

尝试一下 » 

垂直居中对齐 - 使用 padding

CSS 中有很多方式可以实现垂直居中对齐。 一个简单的方式就是头部顶部使用 padding: 

.center { padding: 70px 0; border: 3px solid green; }

尝试一下 » 

如果要水平和垂直都居中,可以使用 padding 和 text-align: center:

尝试一下 » 

垂直居中 - 使用 line-height 

.center {
    line-height: 200px;
    height: 200px;
    border: 3px solid green;
    text-align: center;
}
 
/* 如果文本有多行,添加以下代码: */
.center p {
    line-height: 1.5;
    display: inline-block;
    vertical-align: middle;
}

垂直居中 - 使用 position 和 transform

除了使用 padding 和 line-height 属性外,我们还可以使用 transform 属性来设置垂直居中: 

尝试一下 »

 

posted @ 2020-12-11 23:12  然爸  阅读(97)  评论(0)    收藏  举报