CSS总结笔记+案例(上)

简介: CSS总结笔记+案例

前端开发 第二节CSS


CSS总结笔记:


3.CSS样式


css,专门用来“美化”标签。


  • 基础CSS,写简单页面&看懂&改。
  • 模块、调整和修改


3.1CSS应用方法


1.在标签上

- 高度和宽度样式:
<img src="xxx" style="height:100px;" />
- 颜色样式:
<div style="color:red;">中国联通</div>


2.在head标签中写style标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
    <style>
        .c1{
            color:red;
        }
    </style>
</head>
<body>
    <h1 class='c1'>用户登录</h1>
    <form method="post" action="/login">
        <div>
            用户名:<input type="text" name="username">
        </div>
        <div>
            密码:<input type="password" name="password">
        </div>
        <input type="submit">
    </form>
</body>
</html>


3.写到文件中

.c1{
    height:100px;
}
.c2{
    color:red;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
    <link rel="stylesheet" href="common.css" />
</head>
<body>
</body>
</html>


案例:Flask中的应用(登录注册)


CSS文件:

.xx{
    color: green;
}


login.html文件(在HTML头内写CSS):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
    <style>
        .c1{
            color: red;
        }
        .c2{
            height: 50px;
        }
    </style>
</head>
<body>
    <h1 class="c1">用户登录</h1>
    <form method="post" action="/login">
        <div class="c2">
            用户名:<input type="text" name="username">
        </div>
        <div class="c2">
            密码:<input type="password" name="password">
        </div>
        <input type="submit">
    </form>
</body>
</html>


register.html文件(在外部引入CSS文件):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
    <link rel="stylesheet" href="/static/commons.css">
</head>
<body>
<h1 class="xx">用户注册</h1>
<div>
    用户名:<input type="text">
</div>
<div>
    密码:<input type="password">
</div>
<div>
    性别:<input type="radio">男 <input type="radio">女
</div>
<div>
    爱好:
    <input type="checkbox">篮球
    <input type="checkbox">足球
    <input type="checkbox">乒乓球
</div>
<div>
    擅长的领域:
    <select multiple>
        <option>Python</option>
        <option>C++</option>
        <option>Java</option>
    </select>
</div>
<div>
    备注:<textarea></textarea>
</div>
<div>
    <input type="button" value="button按钮">
    <input type="submit" value="button按钮">
</div>
</body>
</html>


3.2CSS选择器


#c2{
    color: gold;
}
<div id="c2">美国</div>


  • 类选择器(class)
.c1{
    color: red;
}
<div class="c1">中国</div>


li{
    color: pink;
}
<ul>
    <li>北京</li>
    <li>上海</li>
    <li>深圳</li>
</ul>


  • 属性选择器
input[type='text']{
            border: 1px solid red;
        }
        .v1[xx="456"]{
            color: gold;
        }
<div class="v1" xx="123">a</div>
<div class="v1" xx="456">b</div>
<div class="v1" xx="999">c</div>


  • 后代选择器


无穷代:

.yy li{
  color: pink;
}
<div class="yy">
    <ul>
        <li>美国</li>
        <li>日本</li>
        <li>韩国</li>
    </ul>
</div>


一代:

.yy > a{
    color: blue;
}
<div class="yy">
    <a>百度</a>
    <div>
        <a>谷歌</a>
    </div>
    <ul>
        <li>美国</li>
        <li>日本</li>
        <li>韩国</li>
    </ul>
</div>


关于选择器:

使用频率多:类选择器、标签选择器、后代选择器
使用频率少:属性选择器、ID选择器


关于多个样式覆盖问题:


若样式重复,style最后一个样式为最终样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            color: red;
            border: 1px solid red;
        }
        .c2{
            font-size: 28px;
            color: green;
        }
    </style>
</head>
<body>
    <div class="c1 c2">中国联通</div>
</body>
</html>


若不想覆盖(加入! important):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            color: red !important;
            border: 1px solid red;
        }
        .c2{
            font-size: 28px;
            color: green;
        }
    </style>
</head>
<body>
    <div class="c1 c2">中国联通</div>
</body>
</html>


3.4样式


1.高度和宽度

.c1{
    height: 300px;
    width: 500px;
}


注意:宽度,支持百分比。


2.块级和行内标签


  • 块级
  • 行内
  • css样式(既有块级又有行内标签特点):标签 -> display:inline-block
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            display: inline-block;
            height: 100px;
            width: 300px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <span class="c1">中国移动</span>
    <span class="c1">中国联通</span>
    <span class="c1">中国电信</span>
</body>
</html>


块级和行内标签的转换:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="display: inline-block">中国</div>
    <span style="display:block;">联通</span>
</body>
</html>


高频率:块级+块级&行内。


3.字体和颜色


  • color:颜色
  • font-size:大小
  • font-weight:加粗
  • font-family:字体格式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            color: red;
            font-size: 18px;
            font-weight: 500;
            font-family: Microsoft YaHei UI;
        }
    </style>
</head>
<body>
    <div class="c1">中国联通</div>
    <div>中国移动</div>
</body>
</html>


4.文字对齐方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            height: 59px;
            width: 300px;
            border: 1px solid red;
            text-align: center; /* 水平方向居中 */
            line-height: 59px; /* 垂直方向居中*/
        }
    </style>
</head>
<body>
    <div class="c1">刘备</div>
</body>
</html>


5.浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <div>
    <span>左边</span>
    <span style="float: right">右边</span>
  </div>
</body>
</html>


div默认块级标签,若浮动起来自己有多宽占多宽。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .item{
            float: left;
            width: 200px;
            height: 170px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
  <div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
  </div>
</body>
</html>


如果标签浮动起来,就会脱离文档流。


解决:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .item{
            float: left;
            width: 200px;
            height: 170px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
  <div style="background-color: dodgerblue">
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div style="clear: both"></div>
  </div>
</body>
</html>


6.内边距

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .outer{
            border: 1px solid red;
            height: 200px;
            width: 200px;
            padding-top: 20px;
            padding-left: 20px;
            padding-right: 20px;
        }
    </style>
</head>
<body>
    <div class="outer">
        <div style="background-color: gold">刘备</div>
        <div>
            汉景帝第十九代玄孙
        </div>
    </div>
</body>
</html>


7.外边距

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="height: 200px;background-color: dodgerblue"></div>
    <div style="background-color: red;height: 100px;margin-top: 10px;"></div>
</body>
</html>


案例:小米商城(导航条)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            margin: 0;
        }
        .header{
            height: 38px;
            color: #b0b0b0;
            background: #333;
        }
        .container{
            width: 1226px;
            margin: 0 auto;
        }
        .header .menu{
            float: left;
            color: white;
            height: 38px;
        }
        .header .account{
            float: right;
            color: white;
            height: 38px;
            line-height: 38px;
        }
        .header a{
            color: #b0b0b0;
            line-height: 40px;
            display: inline-block;
            font-size: 12px;
            margin-right: 10px;
        }
    </style>
</head>
<body>
<div class="header">
    <div class="container">
        <div class="menu">
            <a>小米商城</a>
            <a>MIUI</a>
            <a>云服务</a>
            <a>有品</a>
            <a>开放平台</a>
        </div>
        <div class="account">
            <a>登录</a>
            <a>注册</a>
            <a>消息通知</a>
        </div>
        <div style="clear: both"></div>
    </div>
</div>
</body>
</html>


总结


  • body标签,默认有一个边距,造成页面四边都有白色间隙,如何去除?
body{
  margin: 0;
}
  • 内容居中


文本居中,文本会在这个区域中居中。

<div style="width: 200px; text-align: center">刘备</div>


区域居中,自己要有宽度 + margin-left:auto;margin-right:auto

.container{
    width: 980px;
    margin: 0 auto;
}
<div class="container">xxx</div>


  • 父级没有高度或者宽度,被本级支撑起来。
  • 若存在浮动,一定记得加入


CSS总结笔记+案例(下):https://developer.aliyun.com/article/1427896

目录
相关文章
|
2月前
|
前端开发
CSS实现充电效果案例
CSS实现充电效果案例
69 1
|
1月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
|
4月前
|
编解码 前端开发 容器
CSS Flex布局实战案例:构建响应式卡片组件
【7月更文挑战第17天】通过上述步骤,我们成功地使用CSS Flex布局构建了一个响应式的卡片组件。Flexbox不仅简化了布局代码,还让我们能够轻松实现复杂的布局效果,如响应式设计。在实战中,掌握Flexbox将大大提高前端开发的效率和网页布局的质量。希望这个案例能够帮助你更好地理解和应用Flexbox布局。
|
3月前
|
前端开发 JavaScript 开发者
理解CSS | 青训营笔记(3)
理解CSS | 青训营笔记(3)
35 0
|
3月前
|
机器学习/深度学习 编解码 前端开发
理解CSS | 青训营笔记(2)
理解CSS | 青训营笔记
36 0
|
3月前
|
前端开发 容器
理解CSS | 青训营笔记(1)
理解CSS | 青训营笔记
51 0
|
6月前
|
前端开发 容器
CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)
CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)
83 2
|
6月前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
66 1
|
6月前
|
编解码 前端开发 iOS开发
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
104 1
|
6月前
|
前端开发 JavaScript 容器
CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)
CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)
54 1