【CSS】 CSS基础知识 属性和选择

css基础知识

  html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式。在html中定义css有三种方法

  1. 为标签添加style属性,这样的话样式只应用于这个标签:

<h1 style="属性:属性值;属性2:属性值;"></h1>

  2. 在文件头的<head>里面加上<style type="text/css">标签,标签里面以css的格式写样式,这些样式对整个html文件有效:

<head>
    <style type="text/css">
        标签名{
            属性:属性值;
            属性2:属性值;
        }
    </style>
</head>

  3. 关联外部既存的css文件

  比如在<head>中添加<link rel="stylesheet" href="..." type="text/css">:

<head>
    <link rel="stylesheet" href="../static/css/test.css" type="text/css">
</head>

  外部的css文件中就是按照css的格式写的样式代码,如:

标签名{
    属性:属性值
    属性2:属性值   
}
标签名2{
    属性:属性值
    属性2:属性值    
}

   以上示例中写的标签名,意思就是其作用范围内所有这个标签都要应用其定义的样式,这仍然不是很灵活,需要更灵活的定义应该诉诸于选择器,下文中会再提及。

■  css基本属性

  ●  背景

  background-color:gray;  设置背景色 更多颜色名称参见http://www.w3school.com.cn/cssref/css_colornames.asp

  background-image:url(文件路径)  设置背景图片

  background-repeat:repeat-x or repeat-y or no-repeat  设置背景是否照水平or垂直方向重复平铺or不平铺

  background-position:center  设置背景图片所处位置,可选的值有很多,参见http://www.w3school.com.cn/css/css_background.asp

  background-attachment:fixed or scroll  设置背景图片是否随着页面滚动而滚动,fixed的话就是说背景图固定在可视界面内不动

  ●  文本

  color  

  direction:ltr or rtl (right to left)  设置文本方向

  text-indent:10% or 5em  设置文本缩进,意思是说设置了这个属性的元素,其子元素并不显示在其最左边而是最左边加上这段缩进值的距离(1em = 16px)

  text-align:center or left...  设置文本对其,和<center>不同,这里的对其是指文本相对其父元素的对齐方式,而center是把整个元素相对于页面对齐

  word-spacing:20px...  设置文字间距

  text-transform:uppercase or lowercase or capitalize or none  设置文字的大小写

  text-decoration:underline or line-through or none  设置文本划线,可以上划线下划线删除线以及none(比如你想让所有超链接不要有下划线,就可以设置a的css中令text-decoration:none)

  

  ●  字体

  font-family:...  设置字体(家族),字体家族是说字体有很多相似的家族,系统好像会自带一些家族,属于这些家族的字体都可以直接拿来用

  font-style:normal or italic  正常or斜体

  font-weight:bold or normal  粗体or正常

  font-size = 15px  设置字体大小,也可以用em等单位(1em = 16px)

  

  ●  链接

  在html中链接有四种状态,分别是 a:link(普通,未访问的链接),a:visited(已被访问的链接),a:hover(鼠标位于链接上方时),a:active(链接被点击时)

  可以对不同状态的链接进行不同的CSS设置:

a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:underline;}
a:active {text-decoration:underline;}

  ●  表格

  标签从table,tr到th,td都可以设置下面这些属性

  border:1px solid blue  设置边框样式(默认情况下双边框,即单元格和表格有各自的边框,如果不要双边框可以调整border-collapse属性)

  width,height:px或百分比  设置表格、单元格的宽和高,可以是百分比

  text-align和vertical-align  设置某个单元格或表格全体的水平、垂直对齐

  padding:px或百分比  设置内容距离单元格边框的距离(包括上下左右)

  ● 透明度

  在css3中有属性opacity:0.5这样的形式来调整一个元素的透明度。1是100%不透明,0是全透明,用小数来调整即可

  

■  框模型和边框

  html中有一套框模型来表现元素的位置(主要用来搞清楚margin和padding的区别):

  CSS 框模型

  假设框的每个边上有 10 个像素的外边距和 5 个像素的内边距。如果希望这个元素框达到 100 个像素,就需要将内容的宽度设置为 70 像素,请看下图:

  CSS 框模型实例

#box {
  width: 70px;
  margin: 10px;
  padding: 5px;
}

  提示:内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。

  提示:外边距可以是负值,而且在很多情况下都要使用负值的外边距。

  在css里设margin和padding,只有一个数值是默认上下左右全部都应用这个数值。但是如果想要灵活地控制不同的边有不同的值的话可以单独设置 margin/padding-top, margin/padding-right等等

  关于边框的设置:

    border-像素  设置边框宽度

    border-style:solid or dotted or dashed等等  设置样式,如果不同边想应用不同样式可以border-bottom-style , border-left-style等等,下面属性也类似

    border-color  设置边框颜色

    以上三个属性可以通过border:1px solid black;这样的方式来一次性设置

  

■  元素选择器

  正如上面说到过的,css中直接写标签名的样式个性化粒度不够细,要做到更细致的选择,应该用元素选择器的语法。这里的选择器语法跟jQuery中用的选择器语法是一样的

  元素选择器的意思就是通过一定的语法规则写成的表达式,让其可以指定一部分的元素。

  ●  多项选择

  如果想让所有标题标签都应用同一个样式,那么可以h1,h2,h3,h4,h5,h6{...},即用逗号隔开元素代表多项选择

  ●  通配选择

  就是*号,*{...}会把相关样式应用到所有元素上,.class *{...}的样式会应用到所有含class类的元素的所有子元素上

  ●  类选择

  匹配有class属性的元素,方法是.class

  .class{...}的css将应用于所有class属性设置成"class"的元素。类选择可以和标签名选择结合起来:p.class就是选择所有class配置成"class"的p元素。类选择还可以累计,而累计的类选择只匹配同时包含那些类的元素,比如.class1.class2{...}将选择属性class="class1 class2 [或者更多内容]"的元素。

  ●  id选择

  id选择看的是元素的id属性。方式是#id。id和class不同,一个页面中一种元素的每个实例的id应该都是互不相同的。所以id定位更加精细一些。同类选择类似,可以有p#id这样的表达。但是不能有#id1#id2的表达。

  ●  属性选择器

  其实class和id也是元素的两个属性而已。如果要选择其他属性的值的话也可以,但是需要指出属性的名称:

  [attribute="value"]来定位某个含有attribute属性,且其值为value的元素,和上述类似的可以有p[attribute="value"]的表达。

  如果不写等号和后面的东西,就是选择含有这项属性的元素(不管其值是什么都选择)

  除了写等号,也可以写^=,$=,*=分别表示attribute的开头是"value",结尾是"value"以及attribute中包含"value"。

  另外还需要注意的一点是,value必须和原文中的一模一样,比如元素有 attribute = "value1 value2"的话,[attribute="value1"]是匹配不到的,要[attribute="value1 value2"]

  ●  后代元素选择 & 子元素选择

  比如有时候我想让在某个div下的某些p的样式做出变化,这样的话就需要搞一个双重的条件。多重条件就可以考虑一个后代元素的选择,其方式是空格:

  div.container p#name{...}的意思就是选择class=="container"的div里面的id=="name"的p,将后面定义的css应用到这个(或者说这种)p元素上。当然,这种p肯定是这种div的后代元素了

  如果不需要后代元素这么庞大的概念,只需要子元素这一层(不要孙元素及以下),那么方式就改成>。比如div.container > p#name{...}这样的话就只会找div下一层的p而不找更下面的了

  ●  同辈元素选择

  和后代元素类似的,+号选择的是之前定位到的元素的后一个同辈元素,和后代元素选择类似的不再多说

  ●  伪类选择

  伪类是html内置的一些,用于标识元素状态的标志。在选择器中用:来选择,比如之前提过的超链接的几个状态的设置,就有a:normal , a:visited等,这些就是伪类了。除了a的那四个,还有诸如first-letter,first-line之类的伪类可以用。(注意,hover这些伪类并不一定只有a可以用,其他标签如img等也可以用哦)

 

原文地址:https://www.cnblogs.com/franknihao/p/6673339.html