JavaWeb - CSS
1.CSS
概念:Cascading Style Sheets 层叠样式表
*层叠:多个样式可以作用在同一个html的元素上,同时生效
好处:
1.功能强大
2.将内容的展示和样式的控制分离
*降低耦合度。解耦
*让分工协作更容易
*提高开发效率
2.CSS和HTML结合方式
1.内联样式(不推荐)
*在标签内使用style属性指定css代码
*如:<div style="color:red;">hello</div>
2.内部样式 作用域为当前文件内的div标签
*在head标签内,定义style标签,style的标签体内容就是css代码
*如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ color: blue; } </style> </head> <body> <div>hello</div> </body> </html>
3.外部样式
1.定义css资源文件
2.在head标签内,定义link标签,引入外部的资源文件
*如:
*a.css文件
*在head标签引入<link rel="stylesheet" href="a.css">
3.CSS语法
*格式:
选择器{
属性名:属性值;
}
4.选择器:筛选具有相似特征的元素
*分类:
1.基础选择器
1.id选择器:选择具体的id属性值的元素,建议在一个html页面中id值唯一,优先级最高
格式:#id属性值{ }
2.元素选择器:选择具有相同标签名称的元素
格式:标签名称{ }
*注意:id选择器优先级高于元素选择器
3.类选择器:选择具有相同的class属性值的元素
格式:.class属性值{ }
*注意:类选择器优先级高于元素选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>基础选择器</title> <style> /*id选择器*/ #div1{ color: red; } #div2{ color: gold; } /*元素选择器*/ div{ font-size: 88px; } /*元素选择器*/ .cls1{ color: black; } </style> </head> <body> <!-- 1.基础选择器 1.id选择器:选择具体的id属性值的元素 格式:#id属性值{ } 2.元素选择器 3.类选择器 --> <div id="div1" class="cls1">传智播客</div> <div id="div2">帅哥程序员</div> <p class="cls1">新闻传播学院</p> </body> </html>
2.扩展选择器
1.选择所有元素:
格式:*{ }
2.并集选择器:
格式:选择器1,选择器2{ }
3.子选择器:筛选选择器1下的选择器2元素
格式:选择器1 选择器2{ }
4.父选择器:筛选选择器2 的 父元素选择器1
格式:选择器1 > 选择器2{ }
比如:某个div便签中没有p标签 此时写 div > p { color : red;} 那么前面那个div标签不受控制
5.属性选择器:选择元素名称,属性名=属性值的元素
格式:元素名称【属性名=“属性值”】{ }
如:选择input框 - - > input [ type = 'text' ] { }
6.伪类选择器:选择一些元素具有的状态
格式:元素:状态{ }
如:<a>
*状态:
*link:初始化的状态
*visited:被访问过的状态
*active:正在访问的状态
*hover:鼠标悬浮状态
例子:a:link{ color : pink; } 此时默认超链接为粉红色
5.属性
1.字体、文本
*font-size:字体大小
*color:文本颜色
*text-align:对齐方式
*line-height:行高
2.背景
*background:背景设置,复合属性 如:background:url(" ") no-repeat center;
3.边框
*border:设置边框,复合属性 如:border: 1px solid red;
4.尺寸
*width:宽度
*height:高度
5.盒子模型:控制布局
*margin:外边距
*padding:内边距
注意:默认情况下内边距会影响整个盒子的大小
*box-sizing:border-box;设置盒子的属性,让width和height就是最终盒子的大小
*float:浮动 left和right 左浮动 右浮动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>盒子模型</title> <style> div{ border:1px solid red; } .div1{ width: 100px; height: 100px; margin: 50px; } .div2{ width: 200px; height: 200px; } </style> </head> <body> <div class="div2"> <div class="div1"></div> </div> </body> </html>
案例:CSS完成注册页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> <style> body{ background: url("img/register_bg.png") no-repeat center; } /*让所有元素都挨近 上下两行字*/ *{ margin: 0px; padding: 0px; } /*给最外层框框定义*/ .register_layout{ width: 900px; height: 500px; border: 8px solid #EEEEEE; background-color: white; /*让div水平居中*/ margin: auto; margin-top: 25px; } .rg_left{ /*border: 1px solid red;*/ float: left; margin: 15px; } .rg_center{ /*border: 1px solid red;*/ float: left; width: 450px; margin-top: 20px; margin-left: 30px; } .rg_right{ /*border: 1px solid red;*/ float: right; margin: 10px; } /*选择左边div下的第一个p标签*/ .rg_left > p:first-child{ color:#FFD026; font-size:20px; } /*选择左边div下的最后一个p标签*/ .rg_left > p:last-child{ color:#A6A6A6; font-size: 20px; } .rg_right p a { color: palevioletred; } /*表格中所有左侧的元素*/ .td_left{ width: 100px; height: 45px; text-align: right; } .td_right{ padding-left: 50px; } #username,#password,#email,#name,#tel,#checkcode,#birthday{ width: 160px; height: 26px; border: 1px solid #A6A6A6; /*设置边框圆角*/ border-radius: 5px; padding-left: 10px; } #checkcode{ width: 100px; } #img_check{ height: 32px; /*设置垂直居中*/ vertical-align: middle; } #sub{ width: 120px; height: 40px; background-color: #FFD026; border: 1px solid #FFD026; margin-left: 80px; } </style> </head> <body> <div class="register_layout"> <div class="rg_left"> <p>新用户注册</p> <p>USER REGISTER</p> </div> <div class="rg_center"> <div class="rg_form"> <!--中间的表格--> <form action="#" method="post"> <table> <tr> <td class="td_left"><label for="username">用户名</label></td> <td class="td_right"><input type="text" name="username" id="username" placeholder="请输入用户名"></td> </tr> <tr> <td class="td_left"><label for="password">密码</label></td> <td class="td_right"><input type="password" name="password" id="password" placeholder="请输入密码"></td> </tr> <tr> <td class="td_left"><label for="email">email</label></td> <td class="td_right"><input type="email" name="email" id="email" placeholder="请输入email"></td> </tr> <tr> <td class="td_left"><label for="name">姓名</label></td> <td class="td_right"><input type="text" name="name" id="name" placeholder="请输入姓名"></td> <tr> <td class="td_left"><label for="tel">手机号</label></td> <td class="td_right"><input type="text" name="tel" id="tel" placeholder="请输入手机号"></td> </tr> <tr> <td class="td_left"><label>性别</label></td> <td class="td_right"> <input type="radio" name="gender" value="male">男 <input type="radio" name="gender" value="female">女 </td> </tr> <tr> <td class="td_left"><label for="birthday">出生日期</label></td> <td class="td_right"><input type="date" name="birthday" id="birthday" placeholder="请输入生日"></td> </tr> <tr> <td class="td_left"><label for="checkcode">验证码</label></td> <td class="td_right"><input type="text" name="checkcode" id="checkcode" placeholder="请输入验证码"><img src="img/verify_code.jpg" id="img_check"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="注册" id="sub"></td> </tr> </table> </form> </div> </div> <div class="rg_right"> <p>已有账号?<a href="#">立即登录</a></p> </div> </div> </body> </html>