微信小程序的布局是基于css的布局,可以参考一些学习网站上面的css的基础学习
以下是布局的一些语法规则
class 用 .class{}
id 用 #id{}
类的子元素添加css (1 .class 子元素名(所有后代) (2 .class>li{} (直接子后代)
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100
(1)块状元素、内联元素(又叫行内元素)和内联块状元素
三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。
(1.1)
常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>
(1.2)块级元素
display:block; /*设置为块状元素*/
块级元素特点:
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
2、元素的高度、宽度、行高以及顶和底边距都可设置。
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
(1.3)内联元素
display:inline; /*设置为内联元素*/
内联元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度及顶部和底部边距不可设置;
3、元素的宽度就是它包含的文字或图片的宽度,不可改变。
(1.4)内联块状元素
display:inline-block; /*设置为内联块状元素*/
inline-block 元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置。
(2)
CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float
在网页中,元素有三种布局模型:
1、流动模型(Flow)
2、浮动模型 (Float)
3、层模型(Layer)
(2.1)
流动模型(一) (默认类型)
第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)
(2.2)
浮动模型
(float:left)
块状元素这么霸道都是独占一行,如果现在我们想让两个块状元素并排显示
(2.3)
层模型
层模型有三种形式:
1、绝对定位(position: absolute)
2、相对定位(position: relative)
3、固定定位(position: fixed)
(2.3.1)
层模型--绝对定位(相对于父类进行布局 类似 framlayout,不过会以直接的外层布局作为相对的位置)
div{position:absolute;left:100px;top:50px;}
如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。
(2.3.2)
层模型--相对定位 (相当于android中的 leanerlayout)
div{position:relative;left:100px;top:50px;}
如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动.
(2.3.3)
层模型--固定定位(相当于android中的 Framlayout,不一样的是,他是相对于整个窗口相对的位置,进行布局)
div{position:fixed;left:100px;top:50px;}
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。
(3)单位
目前比较常用到px(像素)、em、% 百分比,要注意其实这三种单位都是相对单位。
(3.1)px
因为像素指的是显示器上的小点(CSS规范中假设“90像素=1英寸”)
(3.2)em
就是本元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px;如果 font-size 为 18px,那么 1em = 18px。如下代码:
p{font-size:12px;text-indent:2em;}
(3.3)%
p{font-size:12px;line-height:130%}
设置行高(行间距)为字体的130%(12 * 1.3 = 15.6px)。