前端基础知识学习(HTML+CSS)

前端开发

1.HTML

1.1标签

<h1></h1>
<div></div>
<span></span>
<a></a>
<img>

1.2划分

- 块级标签
  <div></div>
  <h1></h1>
- 行内标签
  <span></span>
  <a target = "_blank"></a> 需要进行重开界面 可以
  <img />

1.3标签的嵌套使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>商品列表</title>
</head>
<body>

<a href="https://www.mi.com/redminote11t-pro" target="_blank" >
    <img src="/static/tp1.png" style="width: 30%">
</a>

<a href="https://www.mi.com/redminote11t-pro" target="_blank">
    <img src="/static/tp2.png" style="width: 30%">
</a>

<a href="https://www.mi.com/redminote11-se" target="_blank">
    <img src="/static/tp3.png" style="width: 30%">
</a>
</body>
</html>

1.4 列表标签

无序列表
<ul>
  <li>Python</li>
  <li>Java</li>
  <li>C/C++</li>
</ul>

有序列表
<ol>
  <li>Python</li>
  <li>Java</li>
  <li>C/C++</li>
</ol>

1.5 表格

<table>
  <thead border ="1"> 表头 border ="1"加上一个边框
    <tr> 
      <th>ID</th> 
        <th>姓名</th> 
          <th>年龄</th> 
    </tr>
  </thead>
  <tbody> 内容
    <tr> 
      <th>1</th> 
        <th>廖凡</th> 
         <th>22</th> 
    </tr>
    
    <tr> 
      <th>2</th> 
         <th>小牛</th> 
          <th>21</th>
    </tr>
  </tbody>
</table>

1.6 input系列

<input type="text"/>
<input type="password"/>
<input type="file"/>
    
<div> 单选
  <input type="radio" name="n1"/><input type="radio" name="n1"/></div>

<div> 复选框
  <input type="checkbox">篮球
  <input type="checkbox">足球
  <input type="checkbox">乒乓球
</div>

<input type="button" value="提交"/> 普通按钮
<input type="submit" value="提交"/> 提交表单

1.7 下拉框

 <h1>下拉框</h1>
    <select >
        <option>湖南</option>
        <option>湖北</option>
        <option>广东</option>
    </select>

1.8 多行文本

<textarea rows="2"></textarea>  rows 设定其有多少行

案列:基于Flask的注册案例

from flask import Flask , render_template, request

app = Flask(__name__)

@app.route("/register", methods=['GET', 'POST'])
def register():
    if request.method == 'GET':
        return render_template("register.html")
    else :
        # 1.接收用户通过POST请求到的数据
        print(request.form)
        # 2.返回结果
        return "注册成功"

if __name__ == '__main__':
    app.run()

HTML 代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>用户注册</h1>

<form method="post", action="/register">
    <div>
        用户名:
        <input type="text" name="user"/>
    </div>
    <div>
        密 码 :
        <input type="password" name="pwd"/>
    </div>
    <div>
        <input type="submit", value="submit提交"/>
    </div>

    <div>
        性别:
        <input type="radio" name="gender" value="-1"/><input type="radio" name="gender" value="1"/></div>

    <div>
        爱好:
        <input type="checkbox" name="hobby" value="10"/>LOL
        <input type="checkbox" name="hobby" value="20"/>Sing
        <input type="checkbox" name="hobby" value="30"/>Play
    </div>

    <div>
        城市:
        <select name="city">
            <option value="cs">长沙</option>
            <option value="gz">广州</option>
            <option value="sz">深圳</option>
        </select>
    </div>

    <div>
        技能:
        <select name="skill" multiple>
            <option value="py">Python</option>
            <option value="java">Java</option>
            <option value="c">C/C++</option>
        </select>
    </div>

    <div>
        更多:
        <textarea name="more"></textarea>
    </div>
</form>

</body>
</html>

页面上的数据,想要提交到后台:

  • form标签包裹要提交的数据标签
    • 提交方式:method = 'GET'
    • 提交地址:action = '/xxx/xxx'
    • 在form标签里面必须要有表当提交的==submit标签==
  • 在form里面的一些标签: input/select/textarea
    • 一定要写name属性<input type="text" name="xx">
  • 在form中的: radio/select/checkbox 标签
    • 一定要写value属性 <input type="radio" name="xx" value="xxx">

总结

  1. 称呼

    - HTML标签
    
    什么是HTLM?超文本传输语言(与浏览器配合)
    
  2. HTML标签(默认格式样式,可以通过其他方式修改)

  3. HTML标签与编程语言无关

    • Java + HTML
    • python + HTML
    • php + HTML
    • c# + HTML
  4. HTML的标签比较多, 标签还有很多,不必逐一学习

2.CSS基础知识

2.1 快速了解

<img src="..." style='height:100px'/>

<div style="color:red"></div>

2.2 CSS应用方式

1.在标签上
<img src="..." style='height:100px'/>

<div style="color:red"></div>
2.在head标签中写style标签(*)
<style>
    .c1{
        color="red"
    }
</style>
3.在文件中写(*)
.c1{
    height:100px;
}

.c2{
    color:red;
}
<link rel="stylesheet" href="common.css">

注意在Flask中只可以在static文件下写css文件

案列:flask中的应用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/common.css">
</head>
<body>
<h1 class="c2">登录界面</h1>
<form action="/login" method="post">
    <div class="c1">
        账号:
        <input type="text" name="user"/>
    </div>
    <div class="c1">
        密码:
        <input type="password" name="psw"/>
    </div>
    <input type="submit" value="登录" class="c2">
</form>
</body>
</html>
.c1{
    height: 50px;
    color: burlywood;
}
.c2{
    color: aquamarine;
}
问题:Flask框架开发不方便
  • 每次都需要重新启动
  • 规定有些文件必须要存放在特定文件目录中
  • 新创建一个页面
    • 新建 route
    • 新建HTML

2.3 CSS选择器

  • ID选择器

    #c2{
                color: blue;
    	}
    
  • 类选择器

    .c1{
                color: red;
    	}
    
  • 标签选择器

    li{
                color:hotpink;
       }
    
  • 属性选择器

    input[type='text']{
        border :1px solid red
    }
    .v1[xx='456']{
                color: darkmagenta;
    }
    
    <input type="text"/>
    <input type="password"/>
    
    <div class="v1" xx="123">asdf</div>
    <div class="v1" xx="456">asdf</div>
    <div class="v1" xx="789">asdf</div>
    
  • 后代选择器

    选择yy类下子孙中的所有li标签
    .yy li{ 
                color: aqua;
    }
    选择yy类下的直接子元素 a
    .yy>a{
                color: blueviolet;
    }
    选择yy类下的子孙元素 a
    .yy a{
                color: blueviolet;
    }
    

    关于选择器

    多:类,标签,后代

    少:属性,ID

  • 多个样式&覆盖

    与在style标签中的定义顺序有关,后定义的会覆盖先定义的

        <style>
            .c1{
                color: blueviolet;
                border: 1px solid red;
            }
            .c2{
                color: aqua;
                height: 30px;
            }
        </style>
    

    注意:使用!important;可以防止覆盖发生

2.4 样式

1. 高度和宽度
.c1{
            height: 300px;
            width: 50%;
            border :1px solid red;
}

注意:

  • 宽度,高度支持百分比设置
  • 行内标签:默认无效
  • 块级标签:默认有效(霸道,右侧的空白无法使用)
2.块级和行内标签
  • 块级 display:block
  • 行内display:inline
  • css样式 :标签-> display:inline-block
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            display: inline-block;
            border: 1px solid darkred;
            height: 300px;
            width: 300px;
        }
    </style>
</head>
<body>
    <div style="display: inline">我是块级标签</div>

    <span style="display: block">我是行内标签</span>

    <span class="c1">我是一个块级&行内标签</span>

    <span class="c1">我是<span style="color: blue">另外一个</span>块级&行内标签</span>
</body>
</html>

注意:块级 + 块级&行内 使用的频率高

3.字体设置
  • 颜色

  • 大小

  • 缩放

  • 字体格式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .c1{
                color: aquamarine;/*颜色*/
                font-size: 50px;/*大小*/
                font-weight: 200;/*缩放*/
                font-family: Arial Narrow,serif;/*字体格式*/
            }
        </style>
    </head>
    <body>
        <div class="c1">我是一行文字</div>
    </body>
    </html>
    
4.文字对齐方式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            height: 100px;
            width: 300px;
            border :1px solid hotpink;

            text-align: center; /*水平方向居中*/
            line-height: 100px;/*垂直方向居中*/
        }
    </style>
</head>
    <div CLASS="c1">LiaoFan</div>
<body>

</body>
</html>

注意:

水平居中:text-align: center; /*水平方向居中*/

垂直方向居中:line-height: 100px;/*垂直方向居中*/

5. 浮动

div标签默认为块级标签,而如果浮动起来就不一样了

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

    <div>
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
    </div>


</body>
</html>

出现的问题:如果让标签浮动起来,就会脱离文档流

解决的办法加入<div style="clear: both"></div>

<div style="background-color: hotpink">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div style="clear: both"></div>
</div>
6.内边距

内边距:我自己的内部设置一些距离,这会扩充div的大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .outer{
            height: 100px;
            width: 100px;
            border: 1px solid rosybrown;

            padding-top: 20px;
            padding-bottom: 20px;
            padding-left: 20px;
            padding-right: 20px;
            
        }
    </style>
</head>
<body>
    <div class="outer">我是一段文字
        <div>
            第一段文字
        </div>
        <div>
            第二段文字
        </div>
    </div>
</body>
</html>
padding-top: 20px;
padding-bottom: 20px;
padding-left: 20px;
padding-right: 20px;

等价于 ==>

padding :20px

等价于 ==>

padding : 20 px, 10 px ,10px 20 px(顺时针 上右下左)
7.外边距

外边距: 自生与其他标签的边距, 不会使自生标签改变

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

总结

  • body标签,默认有一个边距,造成四周有空白边距,解决办法:

    body{
    	margin:0
    }
    
  • 内容居中

    • 文本居中

      <div style="width: 200px; text-align :center">
          xxxx
      </div>
      
    • 区域局中,必须设置宽度 +margin-left: auto;margin-right: auto

      .container{
      	width: 980px;
      	margin: - auto;
      }
      
      <div class="container">
          xxxxxx
      </div>
      
  • 父亲没有高度或者宽度,会被孩子支撑起来

  • 如果有浮动一定需要加如<div style="clear: both">xxx</div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值