form表单,css简介,css选择器,css样式操作

form表单

简介

    表单在Web网页中用以让访问者输入数据,当提交表单时,表单中输入的数据被打包传递给Web服务器端的程序
以处理,从而使得Web服务器与用户之间具有交互功能。
    表单实现前后台交互:用户将表单提交到后台再右后台提交到数据库的过程,实现前后端交互。
    表单在网页中主要负责数据采集功能,它用< form >标签定义。用户输入的信息都要包含在form标签中,点击
提交后,< form >和</ form >里面包含的数据将被提交到服务器或者电子邮件里。
    所有的用户输入内容的地方都用表单来写,如登录注册、搜索框。

属性action

    action属性:设置表单提交的服务器地址
    method属性:设置表单提交的方式,一般有“GET”和“POST”方式, 不区分大小写
    <body>
    <form action="http://www.baidu.com" method="GET">
    </form>
    </body>
    方法一:绝对 URL - 指向另一个网站
        action="http://www.baidu.com"
        会将表单提交到指定的地址
    方法二:什么都不写
        action="" 或(action="#")
        向当前页面提交表单
    方法三:相对 URL - 指向网站内的一个文件
        action="example.html"
        向这个文件提交表单

input标签

type属性
    text        单行文本框(注意这个是单行文本框并且还是input里type属性的值。多行文本框是一个标签)
    date	日历展示
    email	邮箱格式数据
    password    密码框
    radio       单选按钮,同一组的单选按钮name值一样,checked属性默认选中
    checkbox    复选框,同一组的单选按钮name值一样,checked属性默认选中
    file        文件选中按钮,文件上传按钮
        form的enctype设置成multipart/form-data。method设置成post提交方式
        form默认的enctype值application/x-www-form-urlencoded。特殊字符ASCII码。method默认get提交方式
    name  数据的名字(相当于给数据写名字)
    value  提交数据(如果给了一个value还给了属性值那么这个属性值会默认的出现在input中的。如果要将input中的数据提交要有一个name)
    image       图片按钮(会将form表单的数据进行点击图片提交,同时会将鼠标的坐标进行提交,这个的作用主要就是可以把一张图片当成一个提交按钮)
        
    submit      提交按钮(为保险起见不同浏览器编译出的不同在写这个属性是后面要加value属性)
    reset       重置按钮(为保险起见不同浏览器编译出的不同在写这个属性是后面要加value属性)
    hidden      隐藏按钮,值会被提交(常用场景:不想让用户看到的地方使用。主要作用是将input隐藏)
    button      普通按钮
    disabled:禁用 
    checked:默认选中
    readonly:只读
    


   提交按钮有哪些?
        <input type="submt" value="">
        <input type="image" src="" alt="">
        <button></button>  写在表单内部的button
        <button type="submit"></button>
   重置按钮
        <input type="reset" value="">
        <button type="reset"></button>
   普通按钮
        <input type="button" value="">
        <button type="button"></button>
   """
    input标签中有两个非常重要的属性
    	1.name属性
    		类似于字典的key(前端程序员写)
    	2.value属性
    		类似于字典的value(用户自己传)
    		如果标签是选择类型的 那么还需要前端程序员自己填写value
    	用于区分具体数据含义
    ps:我们在编写input标签的时候应该添加name属性
    """

select标签

国家:

selected:下拉项默认选中
<option></option>下拉项
国家:<select name="address">
	<option  selected value="0">China</option>
        <option  value="1">American</option>
        <option  value="2">Japan</option>
    </select><br/><br/>

textarea标签

<textarea name="desc"></textarea>

lable标签


专门给input标签配文字说明 也可以不使用
方式1
  <label for="d1">用户名:</label>
  <input type="text" id="d1">
方式2
  <label>用户名:
          <input type="text">
  </label>

效果展示:

form 表单

注册

用户名:

密   码:

性别:

爱好: 睡成猪 LOL

大头贴:

国家:

地区:

个性签名:    
源码:
 <h1>form 表单</h1>
		<form action="" method="post">
			<h2>注册</h2>
			用户名:<input type="text" name="username" value="春游去动物园" readonly/><br/><br/>
			密&nbsp;&nbsp;&nbsp;码:<input type="password" name="userpass" disabled/><br/><br/>
			性别:<input type="radio" name="sex" value="0"/>男  
			     <input type="radio" name="sex" value="1"/>女  
				 <input type="radio" name="sex" checked value="2"/>妖<br/><br/>
			爱好:<input type="checkbox" name="hobby[]" checked value="0"/>吃
				<input type="checkbox" name="hobby[]"  checked value="1"/> 睡成猪
				<input type="checkbox" name="hobby[]" value="2"/>LOL<br/><br/>
			大头贴:<input type="file" name="pic" /><br/><br/>
			国家:<select name="address">
					<option  value="0">China</option>
					<option selected value="1">American</option>
					<option value="2">Japan</option>
			</select><br/><br/>
			地区:<input type="text" name="address1" list="mylist"/>
			<datalist id="mylist">
				<option value="山西">山西</option>
				<option value="洪洞">洪洞</option>
				<option value="河南">河南</option>
				<option value="南阳">南阳</option>
			</datalist><br/><br/>
			个性签名:<textarea name="jianjie" rows="5" cols="40"></textarea>
			<input type="submit" value="登录"/>&nbsp;&nbsp;&nbsp;
			<input type="reset" value="取消"/>
		</form>

GET/POST请求

    浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种方法:POST 方
法和 GET 方法。
    1、 如果采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指
定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。
    2、 另一种情况是采用 GET 方法,这时浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤
中发送所有的表单数据:浏览器会将数据直接附在表单的 action URL 之后。这两者之间用问号进行分隔。
get提交时参数直接暴露在URL上。与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

    但是,在以下情况中,请使用POST请求:
    无法使用缓存文件(更新服务器上的文件或数据库)
    向服务器发送大量数据(POST 没有数据量限制)
    发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

    get/post区别:
    1、Get方法是用来向服务器上获取数据,而Post是用来向服务器上传递修改数据。
    2、Get将表单里的数据添加到action所指向的URL后面,并且两者之间使用“?”连接,而各个变量之间使
用“&”连接;
    Post是将表单中的数据放在form的数据体中,按照变量和值对象的方式,传递到所指向的action.
    3、Get是不安全的,因为在传输过程中,数据被放在请求的URL中,这样,用户可以直接在浏览器上看到
提交的数据,一些系统内部信息也一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
    4、Get传输的数据量小,主要是受限与于URL长度限制,其中IE浏览器对URL的最大限度为2083个字符。
 而post可以的传输大量的数据,所以在上传文件和大数据量时使用post。
    5、Form提交默认为Get方法提交。
    6、Get方式获取数据后,刷新不会有负面的影响,因为它只是获取数据,而Post方法刷洗页面重复提交可
能会产生不良的后果。

CSS基本选择器

1.标签选择器:选择器的名字代表html页面上的标签

    标签选择器,选择的是页面上所有这种类型的标签,所以经常描述“共性”,无法描述某一个元素的“个性”。
    <style type="text/css">
    p{
        font-size:14px;
    }</style>
    <body>
    <p>css</p>
    <p>html</p>
    </body>
【总结】需要注意的是:

(1)所有的标签,都可以是选择器。比如ul、li、label、dt、dl、input、div等。

(2)无论这个标签藏的多深,一定能够被选择上。

(3)选择的所有,而不是一个。

2.ID选择器:规定用#来定义(名字自定义)

通过标签的id属性查找标签
<head>
  <title>Document</title>
  <style type="text/css">
  #mytitle
  {
      border:3px dashed green;
  }
  </style>
</head>
<body>
  <h2 id="mytitle">你好</h2>
</body>
id选择器的选择符是“#”。

任何的HTML标签都可以有id属性。表示这个标签的名字。这个标签的名字,可以任取,但是:

(1)只能有字母、数字、下划线。
(2)必须以字母开头。
(3)不能和标签同名。比如id不能叫做body、img、a。
(4)大小写严格区分,也就是说aa,和AA是两个不同的ID
HTML页面,不能出现相同的id,哪怕他们不是一个类型

3、类选择器:规定用圆点.来定义

通过标签的class属性查找标签(关键性符号是句点符)
<head>
  <style type="text/css">
  .oneclass/*定义类选择器*/{
      width:800px;
  }
  </style>
</head>
<body>
  <h2 class="oneclass">你好</h2>
</body>
和id非常相似,任何的标签都可以携带id属性和class属性。但是id属性只能被某一特定标签引用一次

class属性的特点:

特性1:类选择器可以被多种标签使用。

特性2:同一个标签可以使用多个类选择器。用空格隔开。举例如下
<h3 class="classone  classtwo">我是一个h3啊</h3>

4.通用选择器

查找所有的标签
  	* {
      	color: blue;
    }

CSS高级选择器

1.后代选择器 (父子之间一定要有空格)

1

2

E F 后代选择器 选择匹配的F元素,且匹配的F元素被包含在匹配的E元素内(也就是说所有在E元素里的F元素
都会被选择)
<style type="text/css">
	#div1 p{
		color: red;
	}
</style>
<div id="div1">
	<p>1</p>
	<div id="div2">
		<p>2</p>
	</div>
</div>
<div id="div3">
			
</div>
<div id="div4">

</div>

儿子选择器(父子之间一定要有>)

1

2

E>F 儿子选择器 选择匹配的F元素,且匹配的F元素是匹配的E元素的子元素

<style type="text/css">
	#div1>p{
		color: red;
	}
</style>
<div id="div1">
	<p>1</p>
	<div id="div2">
		<p>2</p>
	</div>
</div>
<div id="div3">
			
</div>
<div id="div4">

</div>

3.相邻选择器 (父子之间一定要有+)

1

2

E+F 相邻选择器 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面(匹配E元素,后面的第一个F元素)
<style type="text/css">
	#div1+div{
		width: 50px;
		height: 10px;
		background-color: red;
	}
</style>
<div id="div1" >
	<p>1</p>
	<div id="div2">
		<p>2</p>
	</div>
</div>
<div id="div3">
			
</div>
<div id="div4">
			
</div>

弟弟选择器(关键符号是小波浪号)

1

2

E~F 弟弟选择器 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素(匹配E元素后所有为F的元素)
<style type="text/css">
	#div1~div{
		margin: 10px;
		width: 50px;
		height: 10px;
		background-color: red;
	}
</style>
<div id="div1">
	<p>1</p>
	<div id="div2">
		<p>2</p>
	</div>
</div>
<div id="div3">
			
</div>
<div id="div4">
			
</div>

属性选择器

CSS3中共有7种属性选择器
1.E[attr]:只使用了属性名,并没有确定任何属性值。
    a[target]{
        background: gray;
    }
    //带有target属性的链接会得到灰色的背景


2.E[attr="value"]:指定了属性名,并指定了该属性的属性值。
    a[target=blank]{
        background-color: green;
    }
    //target="_blank"的链接会得到绿色的背景


3.E[attr~="value"]:指定了属性名,并指定了该属性的属性值,此属性值是一个词列表,并且以空格隔开,其中的词列表包含一个value值,而且“~”不可忽略。
    [title~=flower]
    //选择title属性包含单词“flower”的元素,并设置其样式


4.E[attr^="value"]:指定了属性名,并指定了该属性的属性值,属性值是以value开头的。
    div[class^="test"]{
        background:#ccc;
    }
    //设置class属性值以“test”开头的所有div元素的背景颜色


5.E[attr$="value"]:指定了属性名,并指定了该属性的属性值,属性值是以value结束的。
    div[class$="test"]{
        background: #ccc;
    }
    //设置class属性值以“test”结尾的所有div元素的背景色


6.E[attr*="value"]:指定了属性名,并指定了该属性的属性值,属性值中包含value。
    div[class*="test"]{
        background:#fff;
    }
    //设置class属性值包含“test”的所有div元素的背景颜色


7.E[attr|="value"]:指定了属性名,并且属性值是value或以"value"开头的值,
    [lang|=en]
    //选择lang属性值以“en”开头的元素并设置其样式


分组与嵌套

# 1.分组
div, p, span {  查找div或者p或者span
           color: red;
        }
# 2.嵌套
d1, .c1, span {  查找id是d1或者class包含c1或者span
					color: red;
}
"""
综合玩法
玩法1
	div#d1		查找id是d1的div标签
	div.c1		查找class包含c1的div标签
玩法2
	div #d1   查找div内部id是d1的后代标签
	#d1>.c1	  查找id是d1的内部class包含c1的儿子标签
"""

伪类选择器

:link		选择地址没有被访问过的超链接元素
:visited	选择地址被访问过的超链接元素
:hover		选择鼠标悬停在上面的元素。
:active		选择鼠标在上面并且按键按下不松手的元素
:focus		选择获取焦点的元素。
# 1.鼠标悬浮
  p:hover {  鼠标移动到p标签上方 字体颜色动态修改为橙色
              color: orange;
          }
# 2.获取聚点
	input:focus {  输入框被鼠标左键选中(聚焦)
            background-color: black;
        }
posted @ 2022-04-25 21:28  春游去动物园  阅读(262)  评论(0编辑  收藏  举报