php基础学习笔记(1)

表单是什么?——表单不是表格。

         用户可以在其中提供一定的数据或信息或选项的一些html元素。表单通常有一个“提交”按钮,然后可以将这些数据据/信息/选项提供给服务器上的程序使用——数据处理。

         ——表单的核心是数据。

表单标签的构成和形式:

<form  name=”form1” action=”将本表单中的数据提交给的对象(是一个php文件名而已)”  method=”post”>

         第一个表单项

         第二个表单项

         。。。。。。。

</form>

到底有哪些表单项?

         单行文本框:<input type=”text” name=”n1” />

                   其他属性:

value:设定其中的初始文字

size:设置其输入框的宽度(单位是“字符宽”)——其中能放置该数量的字符

maxlength:设置该输入框最多能输入的字符个数

readonly:这是一个“无值”属性,表示“只读”,则写法是:readonly=”readonly”

disable: 设置该输入框“无效”,即数据无效。

         密码框:<input type=”password” name=”n2” />

其他属性:

value:设定其中的初始文字

size:设置其输入框的宽度(单位是“字符宽”)——其中能放置该数量的字符

maxlength:设置该输入框最多能输入的字符个数

 

         单选项:<input type=”radio” name=”n3” value=”某个值” />

                   说明:单选项通常必须有value值;

                   其他属性:

                            checked: 表示该选项默认是选中的状态。也是一个“无值属性”

                   name特别说明:一组的单选项要求name值必须相同。

         多选项:<input type=”checkbox” name=”n4” value=”某值” />

                   说明:多选项通常必须有value值;

                   其他属性:

                            checked: 表示该选项默认是选中的状态。也是一个“无值属性”

         提交按钮:<input type=”submit” name=”n5” value=”提交文字” />

                   说明:点击提交按钮,则表单就会“被提交”,即数据会传入到表单的action所设定的文件中去。

         图片按钮:<input type=”image” name=”n6” src=”图片地址” />

                   说明:图片按钮的功能其实也是“提交”,但其显示出来的效果是一张图片——这样有利于美化页面。

         重置按钮:<input type=”reset” name=”n7” value=”重置文字” />

                   说明:会将表单的所有用户填写或选择的数据恢复到初始状态

         普通按钮:<input type=”button” name=”n8” value=”文字” />

                   说明:对表单没有影响,但可以从中产生“动作”以实现其他要求(js程序)

         文件域:<input type=”file” name=”n9” />

                   说明:可以让用户选择本地的文件(并发送到服务器)——文件也是数据。

         隐藏域:<input type=”hidden” name=”n10” />

                   说明:界面上不可见,但是作为一份“隐藏的数据”提交给服务器——编程所需。

         下拉选择:使用select和option标签配合实现。但要把此当作“一个表单项”

                   <select name=”n11” multiple=” multiple” >

                            <option value=”1” >文字1</option>

                            <option value=”2” selected=”selected” >文字2</option>

                            <option value=”3” >文字3</option>

                                     ………………….

                   </select>

                   说明:

                            option标签上可以使用selected属性,表明该select元素的默认选中的项(默认是第一项被选中)。

                            select标签上可以使用multiple属性,使该select元素可以“选择多项”(即默认只能选一个)

         多行选项(也叫列表选项):多行选项其实只是下拉选择的一种“变形”——设置其size值大于等于就会成多行。

                   <select name=”n12” size=”4”>

                            <option value=”1” >文字1</option>

                            <option value=”2” >文字2</option>

                            <option value=”3” >文字3</option>

                                     ………………….

                   </select>

 

         多行文本框:

                   <textarea name=”n13” rows=”行数”  cols=”列数”></textarea>

                   说明:

                            rows设定的行数是一个数字,表示该多行文本框可以显示的文字的行数

                            cols设定的列数是一个数字,表示该多行文本框可以显示的一行文字中个数

                            此标签没有value属性。但其实际的“值”是放在此标签中间的所有内容。

 

         注意:表单项都必须有name属性,以表明其“名字”——服务器取其中的数据就是凭此名字。

 

框架标签

第一个观念:我们在打开的一个“窗口”中总是只会显示一个网页。

但是:

         我们其实也可以在一个窗口中打开多个网页——其实其实质还是一个窗口显示一个网页,只是我们会使用某些特定标签(frameset)来将一个“大窗口”分割成若干个“小窗口”。

 

首先要明确:

1,   使用框架标签(frameset)就不能使用body标签——即body标签使用frameset标签代替

2,   使用frameset标签就要使用framseset文档类型

 

则具体分割代码如下:

         <frameset  cols=”将当前窗口按列分割的设置” rows=”将当前窗口按行分割的设置”>

                   <frame  src=”网页1路经url” />

                   <frame  src=”网页2路经url” />

                            。。。。。。。。。。。。。

         </frameset>

         cols的值是连续的表示列的宽度的数字或百分数,相互之间用(,)分开,其中“*”号表示“其余”的宽度。比如:

         cols=”100,800”   :表示将大窗口按列分割成两个小窗口,第一个为100宽,第二个为800宽

         cols=”100,200,*”          :表示将大窗口按列分割成3个小窗口,第一个为100宽,第二个为200宽,其余给第3个

         cols=”15%, *”

         rows的值是连续的表示行的宽度的数字或百分数,相互之间用(,)分开,其中“*”号表示“其余”的宽度。比如:

         rows=”100,200,*”

         row=”20%, *”

         注意:一个frameset只能按某一个方向(列或行)进行分割

css介绍

CSS:Cascading  Style Sheet(层叠样式表)

CSS能够让我们将网页从以下两个方面来控制网页的外观:

1,   批量控制网页的外观,使我们节省劳力。

2,   精确控制网页的外观:到像素级别。

 

css的基本语法形式:

         选择器 { css属性名1:值1;css属性名2:值2; …………   }

举例:

         font{color:red;    font-weight:bold;  font-size:18px;}

         dt{

                   font-size:14px;

                   font-weight:bold;

                   color:pink;

}

区分两个属性的说法

html属性:写在标签中,形式为: 属性名=“属性值”——此引号可以省略,但墙裂推荐不省略

         ——也可以叫“标签属性”

         ——html属性通常是“各个标签的自有属性,一般不一样”

——使用相同html属性的标签极少

        

css属性: 写在选择器的大括号中,形式为: 属性名:属性值——特别注意,值不可以加引号

         ——也可以叫“样式属性”

         ——css属性通常是 “对各个标签都可用”,一般都一样

——不使用相同css属性的标签极少

选择器分类

标签选择器:

         形式:  标签名 {  …….. }

         含义: 指代(对应)网页中的所有该标签都应用其中的属性设置。

 

类选择器:

         形式: .类名 {  ……   }

         含义: 指代(对应)网页中的class的值为该类名的所有标签都应用该属性设置。

         举例:

                   <style>  .cc1{color:red;} </style>

                   <h1 class=”cc1”> 惺惺惜惺惺信息</h1>

ID选择器:

         形式:       #id名{  ……   }

         含义:       指代(对应)网页中的id的值为该名称的该标签都应用该属性设置。

         注意:       通常,一个网页中的id名不要相同,因为id本身就是表示“唯一”的意思。

         举例:

                   <style>  #d1{color:red;} </style>

                   <h1 id=”d1”> 惺惺惜惺惺信息</h1>

通用选择器:

         形式:       *{  …..  }   ——通用选择器只有这一个形式(符号)

         含义:       其自动指代“所有标签”,即所有标签都应用该属性设置

         注意:       通用选择器慎用,通常只用于设置基本的几个属性,比如文字颜色,文字大小,padding,margin

 

伪类选择器:

         形式:       :伪类名 { …… }

注意:       伪类名其实只有系统内部规定的不多的几个,不是我们自己定义的,比如:link, visited, hover, active.他们的含义也是特定的。通常上述几个伪类只用于a标签,则其形式和含义通常为:

         a:link{ …… }         :表示一个a链接标签在网页初始打开的时候的状态(初始链接状态)

         a:visited{…..}       :表示一个a链接标签在点击(访问)过之后的时候的状态(访问后状态)

         a:hover{….}          :表示一个a链接标签在鼠标放上去的时候的状态(悬停状态)

         a:active{….}         :表示一个a链接标签在鼠标摁住但还没有抬起的状态(活动状态)。

不过,最新的浏览器中,出于安全考虑,a的hover和visited效果有些属性不能用了。

 

复合选择器之:层级选择器

         形式: 选择器1  选择器2 { ……… }

         含义: 在选择器1所对应的标签中由选择器2所对应的那些标签。。。。。其中,选择器1和选择器2可以是前面所学的任意某种选择器,而且这种层级关系还可以多层次,比如:

#d1  div{…}

.cc1  p  span{…..}

p  .cc2  img{…..}

#d1  p  a:hover{….}

         举例:

                   <style>

div p{ color: red;}

                   </style>

                   <div>

                            <p>段落1</p>

                   </div>

                   <p>段落2</p>

复合选择器之:分组选择器

         形式: 选择器1,选择器2 { ……… }

         含义:指这两个选择器都使用同样的属性设置,其实无非是简缩代码的一种写法,否则他们得用两个选择器来写。

                   .a {color:red;  font-size:15px;}

                   .b{ color:red;  font-size:15px;}

                   è

                   .a, .b{ color:red;  font-size:15px;}

其他复合形式(举例):

         div.cc1{…}   :代表具有class值为cc1的div标签,它跟 div  .cc1{…}是完全不同的。

         p#d1{…}               :代表具有id值为d1的p标签,但这种形式其实并不推荐(意义不大)。

框架:

         框架标签是用于将“当前窗口”进行瓜分成更小窗口的一种技术。framseset代替body标签,并要使用框架文档类型。

         <frameset  rows=”行高度划分”  cols=”列宽度划分”>

                   <frame src=”第1个小窗口中的网页地址url” border=”0”  scrolling=”no” />

                   <frame src=”第2个小窗口中的网页地址url”  />

                            。。。。。。。

         </frameset>

css基本概念:

         css是用于这样一个目的: 将网页中的某个(些)标签(元素)的某(些)方面特性设置为某(些)个值。

         css的语法基本模式为:

                   选择器 {  css属性1:值1;css属性2:值2;………  }

                   所谓选择器,其实就是某种可以对应到网页中的某个(些)标签的语法形式。

css选择器分类:

         标签选择器:

                   一个英文单词{….}

                   所谓一个英文单词,其实也就是一个应该存在的标签名

         类选择器(class选择器)

                   .类名{…}

                   <p  class=”类名1”  align=”center”> 啊啊啊啊啊</p>

                   <img src=”某图片路径”  width=”100”  class=”类名2”  />

                   <input  type=”text”  name=”name名”  class=”类名3”  />

         id选择器:

                   #id名{…..}

                   <input  type=”text”  name=”name名”  class=”类名3”  id=”id名” />

特别注释:title,  class,  id就是我们所谓的“通用属性”——即谁都可以用。

         通用选择器:

                   *{….}

         伪类选择器:

                   a:link{…}

                   a:visited{…}

                   a:hover{。。。}

                   a:active{….}

         注意:上述4个伪类用于a标签通常就必须按上述顺序写。

         另外,实际应用中,常常简化为这样:

                   a{……} 

                   a:hover{….}

                   含义是:a连接标签只分“鼠标放上去状态”和“其他状态”

         层级选择器:

                   选择器1  选择器2{。。。。。}

         分组选择器:

                   选择器1, 选择器2{。。。。。}

文字段落的样式属性

color:设定一个标签中的文字的颜色,颜色值可以使用英文单词,16进制语法和rgb语法:

                   color: red;    color: #f0fcf8;                  color:rgb(123, 88, 205);

font-size: 设定文字大小,单位通常为像素(px)—— 一般的商业网站的文字大小通常都是12px。

font-weight: 设置文字粗体(bold)或非粗体(normal)。

font-style: 设置文字斜体(italic) 或非斜体(normal)

font-family:设置文字的字体名字,可以使用多个字体名,中间用逗号分开,表示的含义是:首先使用第一个字体,如果用户电脑中没有第一个,则是用第二个,以此类推。举例:

         font-family: 宋体,仿宋,微软雅黑,arial, “Times New roman”;

line-height:设置文字的行高,单位通常也是px,即一行文字所占据的空间高度——行高不是文字的高度。

letter-spacing:设置字符(或字母)之间的间隔距离,中文其实就是“字”的间隔。

word-spacing:设置单词之间的间隔距离——通常只对西方拉丁语系的字符有效。

text-align:设定文字的水平对齐方式。其功能是相当于标签属性中的align属性。但要注意:align作为html属性,其实只在其中的某几个标签中使用,但text-align是几乎所有标签都可以用的。

text-indent: 设定一个段落中的首行缩进距离,单位通常也是px。

text-decoration:设置文字的“修饰线”:下划线(underline),中划线(line-through),上划线(overline),none(无)

vertical-align: 设定文字在一个表格盒子(单元格)的垂直对齐方式:top(顶对齐),middle(中对齐),bottom(底对齐)

 

盒子模型初步

         盒子是css中最重要的概念。

         盒子

首先先建立一个观念: 几乎所有标签其实都是一个盒子——而所谓盒子,无非就是一个“矩形的区域范围而已”。其实所谓网页,无非是一个盒子套一个盒子。

         一个盒子有如下一些区域(结构)构成:

         边框(border):一个线型的区域,可以是实线或虚线或其他形状。

         外边距(margin):也叫“边界”,边框线之外的一块空白区域,其含义是“不能放置物体”

         内边距(padding):也叫“补白”,边框线之内的一块空白区域,其含义也是“不能放置物体”

         内容区(没有对应的css属性名):指一个盒子中可以放置“物体”的区域——也就是盒子的主要区域。其中放置的物体可以是普通的文字或其他标签——对应我们之前学的html中的“内容部分”。内容区通常只能设置其宽高属性(width,height)。

         一个盒子的各个组成部分由下图所示:

 

 

网页设计中的“内容与表现分离”思想

我们以前学习html,说,标签具有“表形表意”之作用。其实也可以说,内容和其表现混在一起。

现在:

css技术其实可以将一个网页中的各个标签的表现都“提出来”放到一个专门的地方(比如style标签中),剩余的部分(标签和文字内容等)被整体上称为“结构/内容”。这种做法就被称为“内容与表现分离思想”

 

盒子的两种初始状态(基本表现):

类似div的盒子:一个盒子自动“占据一行”(不管其内部内容多少):这就是“块盒子”(块元素)。常用块盒子:

         p, hr,  h1~h6, table,  form,  ul, li, ol,  dl,  dt, dd,  blockquote, pre, 

         特点:可以设置固定的宽高,margin,padding,

 

类似span盒子:一个盒子中的内容会跟同类的盒子并排在一行出现,除非该行已满,则会自然到下一行——类似文字的表现特性。:这就是行内盒子(行内元素)。行内盒子通常放“最终的数据内容”,比如文本,图片。其他行内盒子:

         b, strong, font,  i,  u,  a,  img,   input,  textarea,  select,

         特点:宽高不能设定,而是由其内容“撑出”,margin和padding没有上下方面的表现。

 

         通常,行内盒子是“小盒子”,块盒子是“大盒子”,

布局初步(原理)

所谓布局,其实是指的将网页内容以一定的方式放到合适的位置上去。

布局的基本步骤:

1,   将“当前版面”以视觉上界限明显的方式进行划分若干个区块,划分只用两种方式:

a)         上下结构:此时,只要使用若干个盒子,自然就是上下结构,无需其他设置。

b)         左右结构:此时使用若干个盒子,并进行相应的浮动,通常的模式:

  1.                                        i.              2个盒子:一左一右
  2.                                       ii.              3个盒子:两左一右或两右一左,或一边倒。
  3.                                     iii.              更多盒子:通常一边倒。

 

浮动解释:

         浮动就像水中的气泡,会“网上浮”

         更形象的比喻:大家(所有标签)都在“地面上平铺着”,各自占据着一定的面积,浮动元素却“浮”到天花板上去了,其并占据大家通常的“地面面积”。

 

浮动除了表现上不跟别的元素抢占地盘之外,其最主要的特性(也就是破坏效果)其实是:使其父盒子失去合理高度——父盒子已经包不住其这些浮动的内部盒子了!这在布局中基本上是不允许的!那么我们就必须使用补充的做法来实现合理包含——父盒子包住子盒子。让父盒子获得正确有效高度的方法有3个:

1,  给父盒子设置一个固定的高度——通常设计时已知高度且不回改变的时候。

2,  给父盒子的内部最末尾加一个清除浮动的空盒子,如下:<div style=”clear:both”></div>

3,  给父盒子设置一个css属性:overflow:hidden;

则最好总结:布局需要左右排列,左右排列需要浮动,浮动需要修正其破坏效果——让父盒子合理包住其子盒子。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。