zoukankan      html  css  js  c++  java
  • CSS基础

    前言:

    CSS,层叠样式表,用于美化网页的。

    分为:行内样式,行间样式,外部样式。

    (1).行内样式:直接在元素标签中写"style="xxx:yyy;""

    (2).行间样式:在<head>标签的<style></style>中写样式代码。

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
        </style>
    </head>
    View Code

    (3).外部样式:把很多CSS写成一个文件,在<link>标签中的href属性里引入这个CSS文件。注意:要把这个标签写在<style>标签的外面。

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
        </style>
        <link rel="stylesheet" href="css/index.css">
    </head>
    View Code

    (4).优先级问题

    行内样式>行间样式=外部样式。(级别一样,哪个样式离这个标签最近就用那个,就近原则)

    一、常见的选择器

    用处:用于精准地选中元素,并赋予样式。

    (一).元素选择器。

        <style>
            /*星号*通配符,匹配所有元素*/
            * {
                margin: 0;
                padding: 0;
            }
    
            /*该样式,匹配所有的p标签*/
            p {
                text-align: center;
            }
        </style>
    View Code

    (二).class选择器

    借助了一个"类"(python中的类),一处定义,可以多处使用。

    语法:".classname{}"

        <style>
            /*这是类选择器*/
            .bigbox {
                width: 100px;
                height: 100px;
            }
        </style>
    View Code

    (三).id选择器

    用过标签的id属性,选择对应的元素。id选择器唯一!

    语法:"#idname{}"

        <style>
            /*这是id选择器*/
            #banner {
                width: 100px;
                height: 100px;
            }
        </style>
    View Code

    (四).群组选择器

    可以同时选择多个标签的选择器。(同时选中多个,把多个选择器放在一起)

        <style>
            /*群组选择器*/
            p, span, .num {
            }
        </style>
    View Code

    (五).层次选择器

    (1).子代。只能选择儿子这一代。

        <style>
            /*子代*/
            /*只能选中div下一级的span。如果有嵌套,就选不了*/
            div > span {
            }
        </style>
    View Code

    (2).后代。儿子、孙子都能选中。

        <style>
            /*后代*/
            /*div下面,所有的span都能被选中。不管套得多深*/
            div span {
            }
        </style>
    View Code

    (3).兄弟。(同级别)

        <style>
            /*兄弟*/
            div ~ p {
                font-size: 12px;
                color: red;
            }
        </style>
    View Code

    (4).相邻。(隔壁)

        <style>
            /*相邻*/
            div + p {
                font-size: 12px;
                color: red;
            }
        </style>
    View Code

    (六).属性选择器

        <style>
            /*属性选择器*/
            div[class=box] {
                width: 200px;
            }
        </style>
    View Code

    (七).选择器的优先级

    id>class>元素

    可以把id想像成数值100,class为10,元素为1

    针对选中同一个样式的情况下,有多个选择器时,不知道该如何判断优先级。把上面想像的数值加一下,数字谁大,用谁的。(不过提醒一点:10个class也没有一个id来得大)

    二、字体样式

    常见的属性:

    (一).font-family

        <style>
            .font_example {
                font-family: "微软雅黑", "楷体";
                /*浏览器会一个个地去找字体,如果都没有找到,则使用默认字体*/
            }
        </style>
    View Code

    (二).font-size

    (1).px代表像素

    (2).em表示父级倍数。如:20em等价于20*父级倍数。

    (3).rem是根字大小,用于移动端的。如:2rem等价于2*根字大小。

    (三).font-weight

    (1).bold变粗

    (2).lighter变细

    (3).0-900的整数

    (四).font-indent:2em;首行缩进2个空格

    (五).text-decoration:none;去掉下划线

    (六).word-spacing:20px;词距!根据空格决定的!英文是以空格为区分一个个单词。

    (七).letter-spacing:2px;字距!

    (八).text-transform:uppercase/lower;只针对英文,全转成大写或者小写。

    (九).vertial-align:center;只能垂直对齐。

    三、背景样式

    先补充一点:div的高度如果设置为100%,则盒子的高度会根据内容来决定。

    常用的属性:

    (一).background-color:rgba(0-255,0-255,0-255,0-1);

    rgba()当中,前三个值的范围都是0-255,分别代表三原色:红绿蓝。第四个值的范围是0-1,代表透明度,0完全透明,1不透明。

    (二).background-image:url("");

    (三).background-repeat:xxx;

    (1).默认是平铺,如果要这个效果,不用写这条代码。

    (2).no-repeat不重复。

    (3).repeat-x横坐标重复。

    (4).repeat-y纵坐标重复。

    (四).background-size:xxx;

    (1).填写固定的像素值,图片则等比例缩放,是宽度的值。

    (2).conver是将图片等比例放大到盒子宽度的最大值,铺满,超出不显示。

    (3).contain则是等比例放大到盒子的高度。

    (五).background-position:xxx;

    (1).top顶部

    (2).bottom底部

    (3).分别指定x值和y值

    (六).复合样式

    就这么写:background: url("") no-repeat center top;

    四、超链接样式

    针对的是<a>标签,必须按下面这样的顺序写,不然没有任何效果。

        <style>
            a:link{}
            a:visited{}
            a:hover{}
            a:active{}
        </style>
    View Code

    我个人推荐的记忆方式:LV HA

    四个伪类单词各自的开头。LV:著名的奢侈品;HA:哈哈的拼音。合起来:LV哈

    五、盒子模型

    盒子模型由padding、margin、border组成。

    (一).边框:border

    (1).复合样式

        <style>
            .border_example {
                border: 1px solid skyblue;
                /*边框粗细宽度,边框样式,颜色*/
            }
        </style>
    View Code

    如果遇到具体要设置某一边的边框,那只能分开写了。

    (2).border-radius:50%;会把边框变圆了,变成一个圆。

    (二).内边距:padding

    内边里面的距离,撑开、撑大,是填充,把盒子变大。内边距针对的是内容,背景不是内容。

    (1).padding:30px;同时给了4个方向的内边距。

    (2).padding:30px 40px;分别是:上下,左右。

    (3).padding:30px 40px 50px;分别是:上,左右,下。

    (4).padding:30px 40px 50px 60px;分别是:上、右、下、左。

    (5).注意:值不能给负数,只能给正数,不管多大的负数都等同于0.

    (三).外边距:margin

    盒子外的距离,盒子与盒子之间的距离,可以给负数。

    数值的给定,同理于padding。但是,父盒子与子盒子共用一个margin-top时,需要在父盒子中写上"overflow:hidden;"

    (1).小技巧

    margin:0 auto;可以水平居中对齐,前提是盒子要有宽度。

    (2).display属性改变元素成块级、行内、行内块

    display:block;改成块级、display:inline;改成行内、display:inline-block;改成行内块。

    六、reset css

    浏览器在解析某些标签时,本身就自带了一些样式,导致我们写样式的时候会效果不一致。因此需要根据具体业务,来自己写一套reset.css!

    这里有一个通用的reset.css可供参考:https://meyerweb.com/eric/tools/css/reset/

    比较偷懒的方式如下:

        <style>
            * {
                margin: 0;
                padding: 0;
            }
        </style>
    View Code

    七、浮动

    当正常文档布局不能解决的时候,需要浮动,就是让元素脱离文档流。(行内元素给浮动后,可以给高宽了)

    当一个元素脱离文档流,飘了起来后,另一个元素则趁虚而入。

    语法:float:left/right;

    不过浮动会产生一个问题:高度崩塌。解决方案:每次浮动后,第一时间在父盒子中清除浮动。

        <style>
            .baseboxname::after {
                content: "";
                display: block;
                clear: both;
            }
        </style>
    View Code

    八、定位

    记住一个事儿:定位,定位,是相对什么来定位的,它的参照物是什么。

    (一).四种定位模式:

    (1).static,默认。遵循文档流,写了等于没写,因为默认就是这个值。

    (2).relative:相对。没有脱离文档流,以自己本身为参照物。

    (3).absolute:绝对。脱离了文档流,不能清除。如果没有定义父盒子,以整个body元素为参照物;如果定位了父盒子,则以父级元素为参照物。

    (4).fixed:固定。永远以body为参照物,脱离了文档流,窗口滚动,它依然不动。

    补充:relative、absolute、fixed,可以给top、left、bottom、right值。

    一般来说,top和left用得较多,因为bottom和right相当于给了top和left的负值。

    (二).z-index

    只能给定位的元素用,数字越大,层级越高。一般会设置1-99。

  • 相关阅读:
    2.6
    20、算法的复杂度
    SVN的部署及分支等方法
    19、数据库设计的三大范式
    2.ViewBag、ViewData、TempData之间的区别
    1、MVC和EF中的 Model First 和 Code First
    19、lambda表达式树
    12、c#中事务及回滚
    11、Linq的使用
    18、(番外)匿名方法+lambda表达式
  • 原文地址:https://www.cnblogs.com/quanquan616/p/8971161.html
Copyright © 2011-2022 走看看