CSS基础

什么是css

  • css 是层叠样式表,它可以用来修饰html元素,格式化元素

css规则构成

  • css规则由两个部分组成,选择器以及一条或多条声明:
p {color:red;text-align:center;}
  • p 是选择器
  • color:red 是声明,声明又分为属性和值,属性:color,值:red
  • text-align:center 是声明,属性:text-align,值:center

css分为行内样式和内嵌式和链接式

/* 这个是行内样式 */
<p style="font-size:24;color:pink;">这是一个段落标签</p>


/* 这个是内嵌式 */
#id {
   color: aqua;
   font-size: 400;
   font-weight: 400;
}
<div id="test">这个是内嵌样式</div>


<!-- 这个是链接式 -->
<link rel="stylesheet" href="./css/test.css">
<div class="test">这个是链接式</div>
/* css文件内容 */
.test {
    background: black;
    color: red;
}

多重样式优先级

  • (内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

  • 内联样式 > id 选择器 > 类选择器 = 伪类选择器 = 属性选择器 > 标签选择器 = 伪元素选择器

选择器优先级(从低到高)

  • 通用选择器(*)
  • 元素(类型)选择器
  • 类选择器
  • 属性选择器
  • 伪类
  • ID 选择器
  • 内联样式

class和id选择器

id选择器

  • id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
  • HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。
  • ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
  • 以下的样式规则应用于元素属性 id=“para1”:
#para1
{
    text-align:center;  // 文本格式居中
    color:red;
}

class选择器

  • class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。
  • class 选择器在 HTML 中以 class 属性表示, 在 CSS 中,类选择器以一个点 . 号显示:
    • 类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。
  • 在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。
.center {text-align:center;}
<div class="center">使用class选择器</div>

链接样式

/* css样式 */

<style>
   a:link {color:#000000;}      /* 未访问链接*/
   a:visited {color:#00FF00;}  /* 已访问链接 */
   a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
   a:active {color:#0000FF;}  /* 鼠标点击时 */
</style>
<p><b><a href="/css/" target="_blank">这是一个链接</a></b></p>
<p><b>注意:</b> a:hover 必须在 a:link 和 a:visited 之后,需要严格按顺序才能看到效果。</p>
<p><b>注意:</b> a:active 必须在 a:hover 之后。</p>

盒子模型

  • 所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
  • 标准盒模型:宽度+左填充+右填充+左边框+右边框+左边距+右边距
  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。
<!-- 250 像素的元素 -->
<div class="ex">这个是250px的元素</div>

<!-- css -->
.ex {
width:220px;
padding:10px;
border:5px solid gray;
margin:0px;
}

边框

  • css中边框由border来确定
  • 边框的样式
border-style 值:
none: 默认无边框
dotted: 定义一个点线边框
dashed: 定义一个虚线边
solid: 定义实线边框
double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
groove: 定义3D沟槽边框。效果取决于边框的颜色值
ridge: 定义3D脊边框。效果取决于边框的颜色值
inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
outset: 定义一个3D突出边框。 效果取决于边框的颜色值

背景

background-color规定要使用的背景颜色。
background-position规定背景图像的位置。
background-color规定要使用的背景颜色。
background-position规定背景图像的位置。
background-size规定背景图片的尺寸。
background-repeat规定如何重复背景图像。
background-origin规定背景图片的定位区域。
background-clip规定背景的绘制区域。
background-attachment规定背景图像是否固定或者随着页面的其余部分滚动。
background-image规定要使用的背景图像。
background-repeat的属性
repeat 默认。背景图像将在垂直方向和水平方向重复。
repeat-x背景图像将在水平方向重复。
repeat-y背景图像将在垂直方向重复。
no-repeat背景图像将仅显示一次。
inherit规定应该从父元素继承 background-repeat 属性的设置。
background-position的属性
inherit规定应该从父元素继承 background 属性的设置。
left top
left center
left bottom
right top
right center全部都是第一个值是水平位置,第二个值是垂直。
right bottom
center top
center center
center bottom
  • 简写
    background: url(images/bg.gif) no-repeat top right

  • 背景图片的滚动
    背景图片是否随着内容的滚动而滚动由background-attachment设置

  • background-attachment:fixed; 固定,不随内容的滚动而滚动

  • background-attachment:scroll; 滚动,随内容的滚动而滚动

margin和padding

margin

  • margin(外边距)属性定义元素周围的空间。
  • margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。
  • margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。
  • auto 设置浏览器边距,这样做的结果会依赖于浏览器。
  • length 定义一个固定的margin(使用像素,pt,em等)
  • % 定义一个使用百分比的边距
margin:25px 50px 75px 100px;
上边距为25px
右边距为50px
下边距为75px
左边距为100px

margin:25px 50px 75px;
上边距为25px
左右边距为50px
下边距为75px

margin:25px 50px;
上下边距为25px
左右边距为50px

margin:25px;
所有的4个边距都是25px
遵循上右下左的顺序
  • 其他属性

margin	简写属性。在一个声明中设置所有外边距属性。
margin-bottom	设置元素的下外边距。
margin-left	设置元素的左外边距。
margin-right	设置元素的右外边距。
margin-top	设置元素的上外边距。

padding

  • padding(填充)是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距。
  • length 定义一个固定的填充(像素, pt, em,等)
  • % 使用百分比值定义一个填充
  • 当设置内边距的时候会把盒子撑大,为了保持盒子原来的大小,应该高度和宽度
padding	使用简写属性设置在一个声明中的所有填充属性
padding-bottom	设置元素的底部填充
padding-left	设置元素的左部填充
padding-right	设置元素的右部填充
padding-top	设置元素的顶部填充

padding:25px 50px 75px 100px;
上填充为25px
右填充为50px
下填充为75px
左填充为100px

padding:25px 50px 75px;
上填充为25px
左右填充为50px
下填充为75px

padding:25px 50px;
上下填充为25px
左右填充为50px

padding:25px;
所有的填充都是25px
和margin属性一样,都遵循上右下左的顺序

float 脱离文档流浮动

  • CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。往往是用于图像,但它在布局时一样非常有用。
  • 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。浮动元素之后的元素将围绕它。浮动元素之前的元素将不会受到影响。如果图像是右浮动,下面的文本流将环绕在它左边
.thumbnail 
{
    float:left;
    width:110px;
    height:90px;
    margin:5px;
}

在这里插入图片描述

清除浮动

  • 清除浮动 - 使用 clear
  • 元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。clear 属性指定元素两侧不能出现浮动元素。
.thumbnail 
{
	float:left;
	width:110px;
	height:90px;
	margin:5px;   // 外边距上右下左都是5px
}
.text_line
{
	clear:both;
	margin-bottom:2px;  // 底外边距是2px
}

在这里插入图片描述

属性:clear
指定不允许元素周围有浮动元素。	
值:
left   // 清除左浮动
right  // 清除右浮动
both   // 清除全部浮动
none   // 不改变
属性:float	
指定一个盒子(元素)是否可以浮动。	
left   // 向左浮动
right  // 向右浮动
none   // 不改变

块级元素、行内元素

  • 块级元素:

    • 他会独占一行,在默认情况下,其宽度自动填满其父元素的宽度;
      块级元素可以设置width、height属性;
      块级元素即使设置了宽度也是独占一行,块级元素可以设置margin、padding属性;
  • 行内元素:

    • 行内元素不会独占一行,相邻的行内元素会排列在同一行里,直到行排不下,就自动换行,其宽度随内容而变化;
      行内元素的width、height属性则无效;
      行内元素的margin、padding属性很奇怪,水平方向的padding-left、padding-rigtht、margin-left、padding-right都会产生边距效果,但是竖直方向的padding-top、padding-bottom、margin-top、margin-bottom却不产生边距效果。
  • 行内元素转换

    • display:none; 不显示
      display:block;变成块级元素
      display:inline; 变成行内元素
      display:inline-block;以块级元素样式展示,以行级元素样式排列
  • 块级元素

address 地址
center 举中对齐块
div- 常用块级容易
dl 定义列表
form 交互表单 (只能用来容纳其它块元素)
h标签
hr 水平分隔线
ol 无需列表
ul有序列表
p 段落
pre 格式化文本
  • 行内元素
a - 锚点
b - 粗体(不推荐)
br- 换行
code - 计算机代码(在引用源码的时候需要)
em - 强调
i - 斜体
img - 图片(特殊的内联元素,同时是内联替换元素,替换元素可以设置宽高)
当图片和DIV在一起时,图片周围会出现margin现象,即元素不重合贴在一起,为了解决这个问题,设置img的css为{margin:0;display:block;border:0px}
input - 输入框
label - 表格标签
select - 项目选择
strong - 粗体强调
textarea - 多行文本输入框
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值