CSS基础

2021-02-20 01:20

阅读:608

YPE html>

标签:vsp   safari   下拉   rtl   get   提示   特殊   点线   将不   

内容主要来源:https://www.runoob.com/css/css-syntax.html

 

CSS   指层叠样式表 (Cascading Style Sheets)

语法:

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明;

技术图片

 

 

 CSS注释以 "/*" 开始, 以 "*/" 结束;

id 选择器

如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器。

HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。

以下的样式规则应用于元素属性 id="para1":

#para1
{
    text-align:center;
    color:red;
}

ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用;

class 选择器

lass 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。

class 选择器在HTML中以class属性表示, 在 CSS 中,类选择器以一个点"."号显示:

.center {text-align:center;}    /*所有拥有 center 类的 HTML 元素均为居中*/

你也可以指定特定的HTML元素使用class

/*所有的 p 元素使用 class="center" 让该元素的文本居中*/
p.center {text-align:center;}

 

CSS 创建

插入样式表的三种方式:

1、外部样式表

      当样式需要应用于很多页面时,外部样式表将是理想的选择。

  每个页面使用 标签链接到样式表。 标签在(文档的)头部:

asp:Content ID="Content1" ContentPlaceHolderID="HeadStyle" runat="server">
    link rel="stylesheet" href="/Content/bootstrap-fileinput/fileinput.min.css">     /*浏览器会再css文件中读到声明的样式,并根据它来格式文档*/
    link href="/Content/jat-CommonStyle.css" rel="stylesheet" /> 
asp:Content>

技术图片 不要在属性值与单位之间留有空格(如:"margin-left: 20 px" ),正确的写法是 "margin-left: 20px" 。

2、内部样式表     

当单个文档需要特殊的样式时,就应该使用内部样式表。可以使用

head>
style>
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
style>
head>

3、内联样式

   由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。

   要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性

p style="color:sienna;margin-left:20px">这是一个段落。p>

4、多重样式

 如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。 

多重样式优先级

 样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。

一般情况下,优先级如下:

 (内联样式)> (内部样式) >(外部样式)> 浏览器默认样式

 CSS属性

 CSS 背景

  CSS 背景属性用于定义HTML元素的背景

  • background-color属性   背景颜色
  • background-image属性    元素的背景图像
  • background-repeat属性    水平或垂直平铺   水平方向平铺 (repeat-x)    不想让图像平铺no-repeat
  • background-attachment属性     背景图像是否固定或者随着页面的其余部分滚动
  • background-position属性    改变图像在背景中的位置

 CSS 文本

属性 描述
color 设置文本颜色;CSS最经常的指定:十六进制值、一个RGB值、颜色的名称 
direction 设置文本方向。 ltr文本方向从左到右;   rtl   inherit规定应该从父元素继承 direction 属性的值。    
letter-spacing 设置字符间距   例:h1 {letter-spacing:2px}
line-height 设置行高  
text-align 对齐元素中的文本   left   right   center     justify  inherit
text-decoration 向文本添加修饰
text-indent 缩进元素中文本的首行
text-shadow 设置文本阴影
text-transform 控制元素中的字母
unicode-bidi 设置或返回文本是否被重写 
vertical-align 设置元素的垂直对齐
white-space 设置元素中空白的处理方式
word-spacing 设置字间距

    CSS 文本

    属性定义字体,加粗,大小,文字样式。

Property 描述
font 在一个声明中设置所有的字体属性
font-family 指定文本的字体系列
font-size 指定文本的字体大小
font-style 指定文本的字体样式
font-variant 以小型大写字体或者正常字体显示文本。
font-weight 指定字体的粗细。

   CSS 链接

     不同的链接可以有不同的样式。链接的样式,可以用任何CSS属性(如颜色,字体,背景等)

style>
a:link {color:#000000;}      /* 未访问链接*/
a:visited {color:#00FF00;}  /* 已访问链接 */
a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
a:active {color:#0000FF;}  /* 鼠标点击时 */
style>

   CSS 列表

在HTML中,有两种类型的列表: 

  • 无序列表 - 列表项标记用特殊图形(如小黑点、小方框等)
  • 有序列表 - 列表项的标记有数字或字母

  要指定列表项标记的图像,使用列表样式图像属性:   ul { list-style-image: url(‘sqpurple.gif‘); }

属性 描述
list-style 简写属性。用于把所有用于列表的属性设置于一个声明中
list-style-image 将图像设置为列表项标志。
list-style-position 设置列表中列表项标志的位置。
list-style-type 设置列表项标志的类型。

   CSS 表格

     border属性:指定CSS表格边框

    border-collapse属性:置表格的边框是否被折叠成一个单一的边框或隔开:

style>
table {
    border-collapse: collapse;
}

table, td, th {
    border: 1px solid black;
}
style>

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

      text-align属性:水平对齐方式

vertical-align 垂直对齐属性

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

td
{
    padding:15px;
}

CSS 盒子模型(Box Model)

在CSS中,"box model"这一术语是用来设计和布局时使用。

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

技术图片重要: 当您指定一个CSS元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完全大小的元素,你还必须添加填充,边框和边距。.

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

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

   CSS 边框

    border   CSS边框属性允许你指定一个元素边框的样式和颜色。

    border-style属性:定义边框的样式;有:dotted   dashed  solid  double  groove  ridge  inset  outset

    border-width :宽度

    border-color   边框的颜色    border-color单独使用是不起作用的,必须得先使用border-style来设置边框样式。

    在CSS中,可以指定不同的侧面不同的边框   border-top-style   border-right-style    border-bottom-style    border-left-style

    border-style属性可以有1-4个值:例如 border-style:dotted solid double dashed;   分别指向上右底左

   CSS 轮廓

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

     https://www.runoob.com/css/css-outline.html

   CSS 外边距margin

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

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

    margin-top     margin-bottom     margin-right     margin-left;

    也可一次性的设置所有,顺序为:上、 右、下、左: 如 margin:25px 50px 75px 100px;

   CSS padding(填充)

       定义元素边框与元素内容之间的空间,即上下左右的内边距。

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

       padding    padding-bottom    padding-left   padding-right   padding-top

      技术图片

     CSS 分组 和 嵌套 选择器

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

        例:

h1,h2,p
{
    color:green;
}

    嵌套选择器

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

p        //为所有 p 元素指定一个样式。
{
    color:blue;
    text-align:center;
}
.marked      //为所有 class="marked" 的元素指定一个样式。
{
    background-color:red;
}
.marked p      //为所有 class="marked" 元素内的 p 元素指定一个样式。
{
    color:white;
}
p.marked{       为所有 class="marked" 的 p 元素指定一个样式。
    text-decoration:underline;
}

     CSS 尺寸 (Dimension)

       属性允许你控制元素的高度和宽度。同样,它允许你增加行间距。

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

    Display(显示) 与 Visibility(可见性)

     visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

     display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

     块级元素主要有: 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

      块级元素(block)特性:

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

      内联元素(inline)特性:

  • 和相邻的内联元素在同一行;
  • 宽度(width)、高度(height)、内(padding)边距的top/bottom  、 外(margin)边距的top/bottom都不可改变

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

      在不同标签/元素上应用我们需要的属性。主要用的CSS样式有以下三个:

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

       我们常将

    元素加上display:inline-block样式,原本垂直的列表就可以水平显示了。

        Position(定位)

         指定了元素的定位类型。元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。  position 属性的五个值:   static   relative   fixed  absolute   sticky

    div.static {   /*static  HTML 元素的默认值,即没有定位;  静态定位的元素不会受到 top, bottom, left, right影响  */
        position: static;
        border: 3px solid #73AD21;
    }
    
    fixed 定位
    
    p.pos_fixed     //元素的位置相对于浏览器窗口是固定位置。  使窗口是滚动的它也不会移动:
    {
        position:fixed;
        top:30px;
        right:5px;
    }
    
    
    h2.pos_left    /*relative   相对定位元素的定位是相对其正常位置   相对定位元素经常被用来作为绝对定位元素的容器块。   */
    {
        position:relative;
        left:-20px;
    }
    h2.pos_right
    {
        position:relative;
        left:20px;
    }
    
    
    /*absolute 定位使元素的位置与文档流无关,因此不占据空间。absolute 定位的元素和其他元素重叠。*/
    
    h2    /*绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于*/
    {
        position:absolute;
        left:100px;
        top:150px;
    }
    /*sticky 定位
    position: sticky; 基于用户的滚动位置来定位。
    依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。
    元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
    
    这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
    */
    div.sticky {
        position: -webkit-sticky; /* Safari */
        position: sticky;
        top: 0;
        background-color: green;
        border: 2px solid #4CAF50;
    }
    
    /*
    重叠的元素
    元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素
    
    z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)
    
    一个元素可以有正数或负数的堆叠顺序:
     如果两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面。
    */
    
    img
    {
        position:absolute;
        left:0px;
        top:0px;
        z-index:-1;
    }

       CSS 布局Overflow

     overflow 属性用于控制内容溢出元素框时显示的方式。控制内容溢出元素框时在对应的元素区间内添加滚动条。

     overflow属性有以下值:

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

        CSS Float(浮动)

         Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。往往是用于图像,但它在布局时一样非常有用。

        clear:both;   clear 属性指定元素两侧不能出现浮动元素。

     CSS 布局 - 水平 & 垂直对齐

     一、水平/垂直居中对齐

    1、元素居中对齐

    /*元素居中对齐
    要水平居中对齐一个元素(如 
    ), 可以使用 margin: auto和设置width属性实现。 如果没有设置 width 属性(或者设置 100%),居中对齐将不起作用。 */ "utf-8">
    class="center">

    注意: 使用 margin:auto 无法兼容 IE8, 除非 !DOCTYPE 已经声明。

       2、文本居中对齐: text-align: center;

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

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

     二、左右对齐

     1、使用定位方式 position: absolute    参见 Position定位

         当使用 position 来对齐元素时, 通常  元素会设置 margin 和 padding 。


评论


亲,登录后才可以留言!