4. 如何用css约束一个层不可见?

html-css015

4. 如何用css约束一个层不可见?,第1张

<style>

.cheshi1 { width:500px height:100px float:left display:none}

</style>

<div class="cheshi1">

2222222222

</div>

如上例:这个div是不会显示的,其中display:none是不可见的关键。

这个属性用于定义建立布局时元素生成的显示框类型。对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 HTML 中已经定义的显示层次结构。对于 XML,由于 XML 没有内置的这种层次结构,所有 display 是绝对必要的。

可能的值

值               描述

none    此元素不会被显示。  

block    此元素将显示为块级元素,此元素前后会带有换行符。  

inline    默认。此元素会被显示为内联元素,元素前后没有换行符。  

inline-block    行内块元素。(CSS2.1 新增的值)  

list-item    此元素会作为列表显示。  

run-in    此元素会根据上下文作为块级元素或内联元素显示。  

compact    CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。  

marker    CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。  

table    此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。  

inline-table    此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。  

table-row-group    此元素会作为一个或多个行的分组来显示(类似 <tbody>)。  

table-header-group    此元素会作为一个或多个行的分组来显示(类似 <thead>)。  

table-footer-group    此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。  

table-row    此元素会作为一个表格行显示(类似 <tr>)。  

table-column-group    此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。  

table-column    此元素会作为一个单元格列显示(类似 <col>)  

table-cell    此元素会作为一个表格单元格显示(类似 <td>和 <th>)  

table-caption    此元素会作为一个表格标题显示(类似 <caption>)  

inherit    规定应该从父元素继承 display 属性的值。  

视口(viewport)是用来约束网页中最顶级块元素的,即它决定了网页的大小,网页是先在视口上渲染,然后再通过视口放回到浏览器窗口上的,网页的渲染过程如下:

pc端视口的大小和浏览器的大小一样,所以网页是1:1的放到浏览器窗口上,而移动端视口就有点特殊,移动端视口的宽度是比移动端屏幕要宽,宽度尺寸一般是980px或者1024px,网页是视口上渲染完之后,为了能在移动端屏幕上显示整个网页,整个视口会整体缩放到屏幕的宽度,这样,网页看上去就整体缩放

具体如何设置视口以及禁止视口页面缩放可以自行百度

(主要针对移动端以及pc端网页需要实现等比放大缩小页面效果)

大概有以下几种

1、流体布局

流体布局其实就是宽度用百分比,高度用固定值的布局方式,宽度通过百分比来适配不同宽度的屏幕。

为了适配手机端不同尺寸的屏幕,我们在定义元素宽度的时候可以写百分比,百分比是相对于屏幕的宽度,所有宽度就可以做到自适应,而在高度方向,由于网页的高度是不定的,所以我们可以把高度写成固定的值(px),这种布局方式叫做流体布局。

注意两个概念

2、弹性盒模型布局flex

这种布局方式是通过css3新增的一些辅助布局的样式属性来制作布局的方式。

3、rem布局

rem是一种相对长度单位,通过这个长度单位可以实现元素宽高等比例缩放,从而完成不同宽度屏幕的适配。

4、响应式布局 (媒体查询)

通过样式动态查询屏幕的宽度,动态切换样式来适配不同宽度屏幕的布局方式。

Bootstrap是最典型的一种

待补充

实际开发中,pc端页面需要实现响应式等比缩放(即自适应),使用rem+弹性布局是比较现实及理想的解决方式

移动端可以使用rem布局,也可以使用px实现(主要用flex),具体看产品是怎么设计要求的

css3规定:1rem的大小就是根元素<html>的font-size的值。

rem其实是一个单位 ,是个相对单位 root em。rem就是root(根元素的大小)相对于html元素的字体大小的单位。

rem布局的原理

就是根据一个html根元素来控制,网页的布局,实现类似于自适应等比例的缩放的布局。

rem优势

通过修改html文字的大小,来改变页面中元素的大小,实现了页面的整体控制

rem的作用

通过设置 根元素<html>的font-size的大小,来控制整个html文档内的字体大小、元素宽高、内外边距等,根据移动设备的宽度大小来实现自适应,不同的设备都展示一致的页面效果。

简单用法

vscode中安装cssrem插件,通过这个插件可以自动计算rem数值。

具体设置如下

注意:设置后 vscode软件需要重启 否则计算的rem值会出错

待补充

可以通过js的方式来改变,也可以通过css媒体查询的方式来改变,

待补充

在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面。当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由 样式来决定的 。我们知道在web开发中样式是在css文件中规定的,叫做层叠样式表 (Cascading Style Sheets)。其实在APP中样式的约束也是使用css,在支付宝小程序中也是使用css不过文件的后缀是.acss而且对css3进行了扩充而已。

那么在支付宝小程序中的.acss和微信小程序中的.wxcss没有什么两样。 上边已经说了.acss其实包含了css3那么它还有一些新的特性是css3中不具备的,让我们一一看看

第一次看到这个东西也能猜到他是干什么用的。在css中我们知道规定大小一般使用像素(px)这个单位。比如显示生活中我们说房子128㎡那这儿的单位是平方米,在开发中需要更加精准的大小就是px像素。像素就非常精细了因为在我们显示屏幕中像素是最小的显示单元。这个道理如果不懂的话就找个LED屏幕仔细看,LED屏幕上一个一个的发光二极管可以想象为像素。

我们知道手机屏幕有大有小,就拿iPhone来说,iPhone 6 plus比iPhone 5要大。那么就说明plus的像素比5要多。对比:

加入有一个160px宽度的红色矩形在这两种手机中的位置如下:

rpx(responsive pixel)可以根据屏幕宽度进行自适应。如何自适应呢?看下边的分析:

看下图:

在模块化开发中我们有时候不得不在页面中使用其他的第三方库的样式,而第三方库的样式是保存在第三方包中的,我们不可能全部复制到我们的.acss文件中,那最好的办法就是导入了。在样式表中导入其他外联样式表。

当然仍旧支持内联样式和class属性制定样式类,如

选择器和css3的保持一致。一般有class=”test”类选择器和id=”test”的id选择器。当然在支付宝小程序的样式中特殊的地方就是:

※ .a- 或者 .am-为前缀的选择器已经被系统占用所以不要使用;

※ 不能使用属性选择器,例如,以下写法不被支持:

我之前说过小程序开发的应用单元为页面。其实我们在.axml中写的页面并不包含页面容器,就相当于我们做一个页面但是body标签不用写那如果我们要改变整个页面的背景怎么办呢?其实有一个固定的选择器。例如:

可以通过 page 元素选择器来设置页面容器的样式,比如页面背景色:

在你想改变页面容器的页面中定义该样式也可以,全局定义也可以,例如我想将test这个页面的页面容器背景设置为蓝色,就可以再pages目录下的test目录下找到test.acss在其中定义page的样式

下节是视图层讲解,如果有任何问题可以再下方给我留言或者发邮件到 [email protected] 我在收到邮件后会回复。