zoukankan      html  css  js  c++  java
  • CSS 属性学习笔记(一)

    整理自菜鸟教程,目的在于方便查阅。

    背景

    • background-color:定义元素的背景色
    • background-image:指定元素的背景图像,默认情况下是平铺重复显示
    • background-size:设置背景图像大小
      • length:第一个值设置宽度,第二个值设置高度;如果只给出一个值,第二个为auto
      • percentage:设置相对于背景定位区域的百分比,同样是宽度、高度两个值
      • cover:保持宽高比,缩放成将完全覆盖背景定位区域的最小大小
      • contain:保持宽高比,缩放成将适合背景定位区域的最大大小
    • background-repeat:设置背景图像如何平铺
      • repeat:重复(默认)
      • repeat-x:只有水平位置会重复背景图像
      • repeat-y:只有垂直位置会重复背景图像
      • no-repeat
    • background-attachment:设置固定或滚动
      • scroll:随页面的滚动而滚动(默认)
      • fixed:固定,不滚动
      • local:随着元素内容的滚动而滚动
    • background-position:设置背景图像的起始位置
      • left topleft centerleft bottom...9 个方位
      • x% y%,左上角是 0%0%,右下角是 100%100%
    • background:缩写属性
    background: #00ff00 url('smiley.gif') no-repeat fixed center; 
    

    文本

    • color:设置颜色
    • text-align:设置水平的对齐方式
    • vertical-align:设置垂直的对齐方式
      • baseline:放置在父元素的基线上(默认)
      • top:顶端与行中最高元素的顶端对齐
      • text-top:顶端与父元素字体的顶端对齐
      • middle:放置在父元素的中部
      • bottom:底端与行中最低的元素的顶端对齐
      • text-bottom:底端与父元素字体的底端对齐
      • %:使用行高的百分比值来排列
    • text-decoration:文本装饰,常用于删除链接的下划线
      • none:无装饰
      • overline:上划线
      • line-through:删除线
      • underline:下划线
    • text-transform:用于大小写转换,或首字母大写
      • uppercase
      • lowercase
      • capitalize
    • text-indent:指定文本的第一行的缩进,如果要实现段落开头空两格,可设置为 2em
    • letter-spacing:字符间距
    • line-height:行高
    • white-space:设置如何处理空白
      • normal:默认,忽略空白,换行符无效
      • pre:保留空白,参考<pre>标签
      • nowrap:文本不会换行,直到遇到br标签
      • pre-wrap:保留空白符序列,正常换行
      • pre-line:合并空白符序列,正常换行

    字体

    这里记一下font-size的三个单位,px指定了实际像素大小;em指定了相对父元素的大小;rem指定了相对 HTML 根元素的大小,规范性更强。

    链接

    链接的四个状态:

    • a:link:未访问过的链接
    • a:visited:访问过的
    • a:hover:鼠标悬浮
    • a:active:链接被点击时

    列表

    ul是无序列表,用特殊图形标记;ol是有序列表,用数字标记。
    列表有3个具体的属性:

    • list-style-image:将图像设置为列表项标志,其值为url(路径)
    • list-style-position:设置列表项标志的位置
      • inside:列表项标志放置在文本以内,且环绕文本根据标记对齐
      • outside:列表项标志位于文本以外的左侧,且环绕文本不会根据标记对齐(默认)
    • list-style-shape:设置列表项标志的类型(可多了...)
      • none:无标记,bootstrap 的导航栏就是这么设置的
      • disc:实心圆(默认)
      • circle:空心圆
      • square:实心方块
      • decimal:数字
      • lower-roman:以0开头的数字
      • 还有罗马数字、字母、日文...
        最后list-style则是个简写属性。

    表格

    使用border指定表格边框:

    table, th, td {
        border: 1px solid #333;
    }
    

    如果这样就不管了,会导致双边框的出现,因为表格和th/td元素有独立的边界:

    使用border-collapse属性解决这个问题:

    table {
        border-collapse: collaspe;
    }
    

    盒子模型

    盒子模型封装了四个 HTML 元素,包括:边距,边框,填充,和实际内容。

    • margin:清除边框外的区域,这部分是透明的
    • border:围绕在内边距和内容外的边框
    • padding:清除内容外、边框内的区域,这部分是透明的
    • content:显示文本和图像

      当我们指定一个CSS元素的widthheight属性时,只是设置了内容区域的宽度和高度,计算总宽度和高度时还需要加上填充、边框、边距。

    边框

    • border-style:设置边框的样式
      • none:无边框(默认)
      • dotted:点线
      • dashed:虚线
      • solid:实线
      • double:双线
      • groove,ridge,inset,outset:3D样式
    • border-width:指定宽度
    • border-color:颜色
    • border:速记属性,把以上属性集中在一个声明中
      如果要单独设置某条边,就采用topleftbottomright。使用简写时,有以下写法:
    border-style: prop1, prop2, prop3, prop4
    /* 上->右->下->左(顺时针方向) */
    border-style: prop1, prop2, prop3
    /* 上->左右->下 */
    border-style: prop1, prop2
    /* 上下->左右 */
    border-style: prop1
    /* 四边共有 */
    

    轮廓

    绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用;可选的样式与边框一样。

    显示

    display属性设置一个元素应该如何显示,更具体地说,就是设置一个元素是块级的(block),还是内联的(inline),它们的区别如下:

    • 块级元素:总是独占一行,表现为另起一行开始,其后的元素也必须另起一行显示;
    • 内联元素:和相邻的内联元素可以共处一行,并且,宽度、高度、上下内边距、上下外边距都不可改变;
      CSS提供了三种选择:blockinlineinline-block,最后一种称为内联块元素,表现为同行显示,又可以修改宽高、内外边距,应该说是前两种的折中。
      <ul>元素设置为inline-block,原本垂直的列表就可以水平显示了,可以用于顶部导航、路径、标签页等组件中。
      设置display: none可以隐藏元素,不再占有空间,典型例子是下拉列表。

    可见性

    visibility,通常设置为visible或者hidden,选择hidden可以起到隐藏元素的作用,但是仍会占用空间。
    第三种选择是collapse,但不同浏览器的处理方式不同,详细可见:筱葭,CSDN

    定位

    position指定了元素的定位类型,可选值:

    • static:没有定位,遵循正常的文档流对象(默认)
    • fixed:固定于浏览器窗口的某个位置,即使滚动窗口它也不会移动
    • relative:相对定位元素是在正常位置的基础上,指定一个偏移距离,可以结合topleftrightbottom进行控制,并且它原本所占的空间不会改变;经常用来作为绝对定位元素的容器块
    • absolute:绝对定位元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>,与文档流无关,不占据空间
    • sticky:粘性定位,依赖于用户的滚动,当跨越了某个特定阈值后,从相对定位position: relative切换成固定定位position: fixed;这个所谓的阈值指的是topleftbottomright其中之一(毕竟fixed依赖于此),形象理解为:滚动到浏览器窗口的某个位置之后就会被粘住不动。
      通过z-index属性可以控制元素的堆叠顺序,这里的 z 可以理解为相对于用户的远近,越大的数表示离用户越近,反之越远,可以取负值;注意一点,只有定位为absoluterelativefixed的元素才能设置堆叠顺序,否则无效。

    溢出

    overflow属性可以控制当内容溢出元素框时,应该怎样显示,可选值:

    • visible:内容不会被修剪,呈现在元素框之外(默认)
    • hidden:内容会被修剪,多余的内容不可见
    • scroll:内容会被修剪,但会提供滚动条,可查看其余内容
    • auto:如果内容被修剪,则会提供滚动条(有些细微差异)
      注意overflow只工作于指定高度的块元素上(没有指定高度,自然是顺流而下)。

    浮动

    float能使元素向左或向右移动,其周围的元素也会重新排列。浮动元素之前的元素不会受到影响;浮动元素之后的元素会围绕它。
    另外,浮动的一个缺点是会让父类容器丢失高度,有时候挺恼人的...使用clear: both可以清除浮动,指定元素两侧不能出现浮动元素。
    常见的做法是建立一个CSS类:

    clearfix{
        clear: both; 
    }
    

    在需要使元素恢复正常排列的地方,插入<div class="clearfix"></div>

    对齐

    要让元素居中对齐,大部分人应该都会想到margin: auto,并配合一定的宽度。如果仅仅是让文本在元素内居中,则可以使用text-align: center
    要实现元素的左/右对齐,可以:

    1. 使用定位:通过{position: absolute; right: 0;}即可实现右对齐;
    2. 使用浮动。
  • 相关阅读:
    Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解
    Spring Boot 2.x基础教程:JSR-303实现请求参数校验
    Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档
    Spring Boot 2.x基础教程:构建RESTful API与单元测试
    IntelliJ中Git突然不能用,报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
    OpenWrite插件上架Google商店,插件安装更加容易!用户安全更有保障!
    为什么我建议大家将原创文章分发到多个平台?
    Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」
    程序员干私活搞副业,个税问题搞清楚没?今年到手的2000明年还是2000吗?
    RabbitMQ延迟消息的延迟极限是多少?
  • 原文地址:https://www.cnblogs.com/zzzt20/p/12405320.html
Copyright © 2011-2022 走看看