样式分为三种
内部样式:写在html文件里的样式叫内部样式
内联样式:写在需要的标签中
外部样式:写在外部css文件里
可以通过不同的选择器来选择设置指定组件的样式:
<style>
/* 写在html文件里的样式叫内部样式 */
/* 选择器 */
/* ID选择器 */
#boxa{
height: 100px;
width: 100px;
background-color: skyblue;
/* 字体颜色 */
color:green;
/* 字体大小 */
font-size: 30px;
/* 字体加粗 数值达到600或bold*/
font-weight: 800;
/* 字体居中 */
text-align: center;
/* 单行文本垂直居中 行高等于容器的高度*/
line-height: 100px;
}
/* 标签选择器 元素选择器 */
div{
height: 100px;
width: 100px;
}
/* 类选择器 */
.bgred{
background-color: red;
/* 不显示 */
display: none;
}
</style>
选择器
ID选择器:用井号 # 标识,设置指定 id 的样式
标签选择器:选择对应的标签类型
类选择器:用点 . 表示选择指定的 class
<body>
<!-- 内联样式 -->
<div style="width: 100px;height: 100px;background-color: pink"></div>
<div id="boxa">你好</div>
<div class="bgred"></div>
<div class="bgred"></div>
</body>
创建css文件
在外部css文件中设置几种标签和类的样式:块的宽度和高度;几种背景色
十六进制颜色表示
这里提供一个获取不同颜色十六进制颜色值的网站:ColorDrop
里面有很多好看的颜色搭配,点击即可复制颜色值
div{
height: 100px;
width: 100px;
}
.red{
background-color: red;
}
.blue{
background-color: #89CFF0;
}
.green{
background-color: #A7FC00;
}
.pink{
background-color: #F2B5D4;
}
在html文件中声明引入css样式
<head>
<meta charset="utf-8">
<title></title>
<!-- 声明引入css文件 -->
<link rel="stylesheet" href="css/float.css" />
</head>
浮动 float
CSS中的浮动样式(float)是一种布局属性,用于控制元素在页面中的位置。通过设置浮动属性,可以使元素沿着其容器的左侧或右侧浮动,并且其他内容将围绕在该元素的周围。
要使用浮动样式,可以为元素添加以下属性:
- float: left; - 元素向左浮动。
- float: right; - 元素向右浮动。
浮动属性将元素从正常的文档流中移除,并使其从其容器的左侧或右侧浮动。其他内容将沿着浮动元素之后重新排列。
.float{
float: left;
}
需要注意的是,浮动元素的父级元素也会受到影响。如果一个父级元素包含一个或多个浮动元素,父级元素的高度将坍塌,导致无法包含浮动元素的高度。为了解决这个问题,可以在父级元素中添加一个属性来清除浮动
/*清空浮动*/
.clear-box:after{
clear: both;
content: "";
display: block;
}
<body>
<div class="red float"></div>
<div class="green float"></div>
<div class="blue float"></div>
<div class="pink" style="width: 500px;height: 300px;"></div>
</body>
浮动之后的div悬浮于原本的页面之上,不占据空间,同时实现了横向排列
子代选择器
用 > 表示其内部的组件,其中的 :hover 表示鼠标移入的效果
/* 子代选择器 */
#menu>li:hover{
background-color: #B5B9F1;
}
同时设置多个标签的样式用逗号
下面的CSS代码中的,list-style: none;
将列表项的默认样式(通常是项目符号或数字)设置为无。这意味着列表项将没有任何可见的项目符号或数字。
ul,ol,li{
list-style: none;
margin: 0;
padding: 0;
}
列表浮动可以实现横向展示,注意在浮动之后清空浮动,否则会与下方元素产生重叠
列表元素中嵌套列表可实现二级菜单的效果
<ul id="menu" class="clear-box">
<li class="float">首页</li>
<li>新闻</li>
<li>娱乐</li>
<li>学习
<ul class="child">
<li>Java</li>
<li>Python</li>
<li>C++</li>
</ul>
</li>
<li>奥运</li>
</ul>
将二级菜单设置为隐藏,并在鼠标移入时显示
.child{
display: none;
position: absolute;
left: 0;
}
.child>li{
padding: 10px 25px;
width: 60px;
}
.child>li:hover{
background-color: #89CFF0;
}
#menu>li:hover .child{
display: block;
}
定位 position
四个属性 | 含义 | 参照物 | 是否占空间 |
---|---|---|---|
absolute | 绝对定位 | 参照物是第一个非static定位的父组件,如果找不到,参照物就是html/body; | 不占空间 |
relative | 相对定位 | 参照物是自身原来的位置; | 占据原来的空间 |
fixed | 窗口定位 | 参考物是窗口; | 不占空间 |
static | 流布局不定位 |
<div class="red"></div>
<div class="green" style="position: fixed;bottom: 0px;right: 100px;"></div>
<div class="pink" style="position: relative;left: 20px;top: 20px;"></div>
<div class="blue" style="position: absolute;left: 50px;top: 10px;"></div>
<div class="red"></div>
盒模型
CSS的盒模型是用于描述HTML元素在页面中的布局和尺寸的模型。它将每个HTML元素看作一个矩形盒子,由四个部分组成:内容区域、内边距、边框和外边距。
padding 内边距
margin 外边距
border 边框
padding: 10px 20px 30px 40px; 四个参数:上、右、下、左
padding: 10px 20px 40px; 三个参数: 上、左右、下
padding: 10px 25px; 两个参数:上下、左右padding: 10px; 一个参数:四周
注:两个相邻盒子的纵向 外边距 会合并,取最大值
没有任何内容的div计算外边距时只保留一侧
<div style="margin:100px ;height: 100px; background-color: #F2B5D4;"></div>
<div style="margin: 40px; background-color: #89CFF0;">
<div style="margin: 20px;background-color: #A7FC00" ></div>
</div>
<div style="margin:100px ;height: 100px; background-color: #F4CBAA;"></div>
练习:登录界面
包含组件:背景图、大标题、用户名输入框、密码框、记住密码复选框、登录按钮
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="css/login.css" />
</head>
<body>
<div class="background"></div>
<div class="loginbox" >
<div class="title">Easy管理系统</div>
<div class="item">
<label class="float" for="username">用户名</label>
<div class="line float">
<input name="username" type="text" id="username"/>
</div>
</div>
<div class="item">
<label class="float" for="userpass">密码</label>
<div class="line float">
<input name="userpass" type="password" id="userpass"/>
</div>
</div>
<div class="rememberbox">
<input type="checkbox" name="remember" id="remember" value="true"/>
<label for="remember">记住密码</label>
</div>
<div class="btnbox">
<a href="./index.html">
<button type="button">登录</button>
</a>
</div>
</div>
</body>
</html>
CSS文件样式大致包含以下内容:
文本 字体 font-family: 微软雅黑;
字号大小 font-size: 30px;
文本居中 text-align: center;
字体加粗 font-weight: bold;
颜色 color: #457B9D;
组件 高度 height: 30px;
宽度 width: 60px;
背景色 background-color: #89CFF0;
边界 border: 4px solid #3B89C7;
圆角 border-radius: 8px;
隐藏边框 outline: none;
定位 绝对定位 position: absolute;
距左侧 left: 50%;
距顶部 top: 30%;
移动自身单位 transform: translate(-50%,-50%); 可实现绝对居中
内边距 padding: 5px;
外边距 margin: 10px 0px;
图片 导入背景图 background-image: url("../image/background.jpeg");
背景窗口占比 background-size: 100%;
.loginbox{
border: 2px solid #89CFF0;
border-radius: 8px;
position: absolute;
left: 50%;
top: 30%;
/* 绝对居中 */
transform: translate(-50%,-50%);
background-color: #F1FAEE;
}
.background{
width: 100%;
height: 100%;
position: absolute;
background-image: url("../image/background.jpeg");
background-size: 100%;
}
.float{
float: left;
}
.clear-box:after{
clear: both;
content: "";
}
.loginbox>.title{
color: #457B9D;
font-weight: bold;
font-size: 30px;
text-align: center;
padding: 20px 0px;
}
.loginbox label{
color: #3B89C7;
font-family: 微软雅黑;
width: 60px;
text-align: center;
display: inline-block;
padding: 10px;
margin: 10px 0px;
}
.loginbox input{
position: relative;
height: 30px;
width: 200px;
font-size: 20px;
border: none;
outline: none;
}
.line{
border: 4px solid #3B89C7;
border-radius: 5px;
padding: 5px;
margin: 10px 0px;
}
.loginbox>.item{
margin: 10px 40px 0px;
}
.rememberbox{
margin: 5px 40px;
}
.rememberbox>input{
transform: translate(20%,20%);
width: 20px;
height: 15px;
}
.rememberbox>label{
font-size: 15px;
padding: 10px 0px;
}
.loginbox button{
width: 100px;
height: 50px;
text-align: center;
font-size: 20px;
border: none;
background-color: #89CFF0;
border-radius: 5px;
}
.loginbox button:hover{
background-color: #457B9D;
}
.loginbox .btnbox{
text-align: center;
padding: 0px 0px 30px 0px;
}