1. web前端--网页布局(盒子模式、弹性盒子、网格)
布局的传统解决方案,基于[盒状模型],于那些特殊布局非常不方便。
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
2009年诞生的这个属性可以说是不亚于 css界一场蒸汽机诞生一样的工业革命,它的诞生标志着马车一样的 float被彻底抛进历史的垃圾堆。
通过display:flex 将对象设置为弹性盒子,以下属性必须熟记于心。
采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。
它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
容器属性:
flex-direction(决定主轴的方向)
flex-wrap(决定是否换行)
flex-flow( <flex-direction> || <flex-wrap>;)
justify-content(主轴方向对齐方式)
align-items(交叉轴方向对齐方式)
align-content(多轴情况下沿交叉轴对齐方式)
项目属性:
order:数值越小,排列越靠前,默认为0。
flex-grow:项目的放大比例,默认为0
flex-shrink:项目的缩小比例,默认为1
flex-basis:项目占据主轴的大小
flex:flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto
两个快捷值:auto (1 1 auto) 和 none (0 0 auto)
align-self:单个项目有与其他项目不一样的对齐方式
flex-box无疑是布局上面的神器
网格布局同样是布局方面的神器,目前不太常用。
display:grid; 设置网格
必须使用 display: grid 将容器元素定义为一个 grid(网格) 布局,使用 grid-template-columns 和 grid-template-rows 设置 列 和 行 的尺寸大小,然后通过 grid-column 和 grid-row 将其子元素放入这个 grid(网格) 中
网格属性:
display:grid| subgrid
grid-template-columns:设置列
grid-template-rows:设置行
grid-template-areas:设置区域
grid-template:none | subgrid | <grid-template-rows> / <grid-template-columns>;前面三个属性合体
grid-column-gap:设置列间距
grid-row-gap:设置行间距
grid-gap:<grid-row-gap> <grid-column-gap>;前两个属性合体
justify-items:start | end | center | stretch;设置项目水平方向对齐方式
align-items:start | end | center | stretch;设置项目垂直方向对齐方式
justify-content:start | end | center | stretch | space-around | space-between | space-evenly; 设置网格水平对齐方式
align-content: start | end | center | stretch | space-around | space-between | space-evenly; 设置网格垂直对齐方式
grid-auto-columns:自动补齐列
grid-auto-rows:自动补齐行
grid-auto-flow:row | column | row dense | column dense
grid
网各项属性:
grid-column-start
grid-column-end
grid-row-start
grid-row-end
grid-column:项目放置列
grid-row:项目放置行
grid-area
justify-self
align-self
2. 前端页面布局有几种
常用flex布局,也有用浮动布局的,还有定位布局,表格布局
3. 前端布局————长度比例
这是一些不太惹人注意的知识,但是掌握了他会对你的前端不具有很大帮助。
在前端布局时,我们将长度单位分为两种,一种是绝对单位,一种是相对单位。
上述这些就是绝对单位,这些单位在现实中有绝对定义,不会随着你的布局平台大小比例变化而变化 (ps:1inch = 2.54cm)
没错,你没有看错,px是一个相对单位,px是Pixel的缩写,代表的是图像上最小的一个点的大小,他会因为图像大小的不同而改变, 比如1024x1024的一张图,当他的长宽扩大一倍,而分辨率不变(即1024x1024),那么他的每个像素的大小都将扩大一倍
通常我们所指的4.5寸、5,0寸这些手机屏幕的大小指的是手机屏幕对角线的距离 (只包括可显示部分,边框部分不包括)
我们在开发移动设备的网站时,最常见的的一个动作就是把下面这个东西复制到我们的head标签中:↓↓↓
该meta标签的作用是让当前viewport的宽度等于设备的宽度, 同时不允许用户手动缩放
(ps:移动端下定宽写法:viewport width=定值(设计稿宽),我们不设置缩放相关属性,移动端浏览器会自动缩放页面以适配屏幕)
rem 和 em 单位是由浏览器基于你的设计中的字体大小计算得到的像素值。em 单位基于使用他们的元素的字体大小。rem 单位基于 html 元素的字体大小。em 单位可能受任何继承的父元素字体大小影响。rem 单位可以从浏览器字体设置中继承字体大小。
(ps:一般情况下,不要给字体大小用rem)
4. 现在前端流行什么页面布局方式
前端常用页面布局分为下面几种:
1.静态布局
给页面元素设置固定的宽度和高罩隐度,单位用px。窗口发生变化时,会出现滚动条,内容会被遮挡。
优点:简单方便,不存在兼容问题。
缺点:网页无法根据用户设备屏幕的宽度进行自适应。
2.流式布局
也叫100%布局。宽度单位为百分比。流式布局常用的设计答孙模板:左侧固定+右侧自适应,左右固定宽度+中间自适应。
优点:可以适应不同尺寸的屏幕
缺点:如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。因为宽度使用%百分比定义,但是高度和文字大小等大都是用px来固定
3.响应式布局
使用meta标签设置,页面元素宽度随窗口调整自动适配。采用自适应布局和流式布局的综物举厅合方式,为不同屏幕分辨率范围创建流式布局。
优点:适应pc和移动端,如果足够耐心,效果完美
缺点:
(1)媒体查询是有限的,也就是可以枚举出来的,只能适应主流的宽高。
(2)要匹配足够多的屏幕大小,工作量不小,设计也需要多个版本。
4.弹性布局
就是采用css3中的flex属性。
优点:简单、方便、快速
缺点:CSS3新特性,浏览器兼容性非常头疼。而且手机浏览器对flex的支持也不是很理想。
5. 网页制作的结构布局有哪些
布局就是以最合适浏览的方式将图片和文字排放在页面的不同位置。不同的制作者会有不同的布局设计。网页布局有以下几种常见结构:
1.“同”字型结构布局
所谓同字型就够就是指页面顶部为“网站标志+广告条+主菜单”或主菜单,下方左侧为二级栏目条,右侧为链接栏目条,屏幕中间显示具体内容的布局。
这种布局的优点是充分利用版面,页面结构清晰,左右堆成,主次分明,信息量大;缺点是页面拥挤,太规矩呆板,如果细节色彩上缺少变化调剂,很容易让人感到单调缺乏。
2.“国”字型布局
“国”字型布局是在“同”字型布局基础上演化而来的,在保留“同”字型的同时,在页面的下方增加一横条状的菜单或广告,是一些大型网站所喜欢的类型。一般最上面是网站标题及横幅广告条,接下来就是网站的主要内容,左右分列一些两小条内容,中间是主要部分,与左右一起罗列到底,最下面是网站的一些基本信息、联系方式、版权声明等。这种结构是在网上见到的最多的一种结构类型。
这种布局的优点是充分利用版面,信息量大,与其他页面的链接切换方便,缺点是页面拥挤,四面封闭,令人感到憋气。
3.T型布局
这是一个形象的说法,是指页面的顶部是“网站标志+广告条”,左面是主菜单,右面是主要内容。这种布局的优点是页面结构清晰、主次分明,是初学者最容易上手的布局方法;缺点是页面呆板,如果不注意细节上的色彩,很容易让人“看之无味”。
4.“三”字型布局
这种布局多用于国外站点,国内用得不多。特点是在页面上有横向两条色块,将页面整体分割为但部分,色块中大多放广告条、更新和版权提示。
5.对比布局
顾名思义,这种布局采用左右或者上下对比的方式:一半深色,一半浅色。一般用于设计型站点。优点是视觉冲击力强;缺点是将两部分有机地结合比较困难。
6.POP布局
POP引自广告术语,是指页面布局像一张宣传海报,一一张精美的图片作为页面的设计中心。这种类型基本上是出现在一些网站的首页,大部分为一些精美的平面设计结合一些小的动画,放上几个简单的链接或者仅是一个“进入”的链接,甚至直接在首页的图片上做链接而没有任何提示。这种布局大部分出现在企业网站和个人主页,如果处理得好的话,会给人带来赏心悦目的感觉。
7.Flash布局
这种布局是指整个或大部分幅面的网页本身就是一个Flash动画,它本身就是动态的,画面一般不叫绚丽、有趣,是一种比较新潮的布局方式。其实这与封面型结构是类似的,只是差毕橡这种类型才采用了目前非常流行的Flash,与封面型不同的是,由于Flash强大的功能,页面所表达的信息更丰富,其视觉效果及听觉效果如果处理得当,绝不差于虚旁传统的多媒体。不同性质的网站,其页面内容安排是不同的。一般网页的基本内容包括标题、网站标识图案(LOGO)、页眉、页脚、主体内容、广告栏等。下面简单说明:A、页面标题在站点的没一个页面中都有一个标题,用来提示页面的主要内容,着一信息将出现在浏览器的标题栏中,而不是在页面的布局中。它的重要作用就是引导访问者清楚地浏览网站的各项内容,不至于迷失方向。标题的加入在HTML语言中比较简单
电子商务网站的主页内容布局授课:花小琴常见的网页布局结构国字型布局——国字型布局由同字型布局进化而来,因布局结构与汉字国相似而得名。其页面的最上部分一般放置网站的标志和导航栏或Banner广告,页面中间主要放置网站的主要内容,最下部分一般放置网站的版权信息和联系方式等。常见的网页布局结构T型布局——T型布局结构因与英文大写字母T相似而得名。其页面的顶部一般放置横网站的标志或Banner广告,下方左侧是导航栏菜单,下方右侧则用于放置网页正文等主要内容。常见的网页布局结构标题正文型——标题正文型布局的布局结构一般用于显示文章页面、新闻页面和一些注册页面等。常见的网页布局结构左右框架型布局——左右框架型布局结构是一些大型论坛和企业经常使用的一种布局结构。其布局结构主要分为左右两侧的页面。左侧一般主要为导航栏链接,右侧则放置网站的主要内容常见的网页布局结构上下框架型——上下框架型布局与前面的左右框架型布局类似。其区别仅在于是一种上下分为两页的框架。常见的网页布局结构综合框架型——综合框架型布局是结合左右框架型布局和上下框架型布局的页面布局技术常见的网页布局结构POP布局——POP布局是一种颇具艺术感和时尚感的网页布局方式。页面设计通常以一张精美的海报画面为布局的主体。常见的网页布局结构FLASH布局——FLASH布局是指网页页面以一个或多个Flash作为页面主体的学习前端第一步:划分网页结构,网页的结构的划分应该遵循哪些原则,如何去划分网页的结构呢?
对于一个前端初学者,第一步就是要学会如何划分一个网页的结构。当设计师给到你一张设计图,你需要根据这张图做出一个符合标准的页面,这里所说的标准,即w3c标准,参考w3school在线教程。那么做出一个完整的符合标准的网页第一步就是要划分网页的结构。一般来讲,网页结构的划分需要遵循几个原则:
一、自上而下原则
因为浏览器在渲染一个网页的顺序是自上而下的。这里提到了渲染这一个词,所谓的渲染就是浏览器将代码转换为页面显示内容的过程。浏览器会自上而下读取你写的代码并自上而下的显示。
二、从左至右原则
在自上而下的同时,同一行的内容是从左至右渲染,所以在划分结构的时候有从左至右的顺序。
三、一像素原则
这个原则对于初学者来说必须坚持,但也并不是说无论什么时候都得死认这个道理。前期我们在划分网页的时候一定要划分准确,尤其是横向。试想,如果外面的盒子宽度是1200像素,里面两个盒子一个600像素另一个601像素,加起来超过了父级的宽度那么必然第二个盒子会换到下一行进行显示。
在说完上述三个原则过后有些人就会一味地追求遵循这些原则,比如在划分结构的时候一定要分为上下部分,但是比如下面我截取这个网页的一部分,图片和文字其实是属于一个整体,文字是对图片的说明,所以就不应该分为上下,而应该水平方向划分,每一个图文作为一部分内容,水平分为四部分:
我们说一般网页有header(头部区)、banner(广告横幅区)、main(主体内容区)、footer(底部区),单页并非所有网页都是这样,有些网页没有banner但是初学者容易将header下面那一部分硬划分为banner,有些网页除了这几部分还会有比如icon等区域由喜欢将他们划分到main中去。
说到main区,这个结构划分就多种多样了。有些网页是有一个从左到右通栏的背景色甚至背景图片,这样我们结构的划分也应该有外层一个通栏的盒子,将背景色或者背景图给他,里面再嵌套一个inner盒,给可视区域的固定宽度并居中。如果没有通栏的背景那么这个时候是不需要给通栏的盒子,直接main区给固定宽度居中就好了。
那么在结构划分的时候有些盒子区域之间的空隙怎么去划分这也是初学者最容易犯难的问题。其实严格意义来讲这些空白在结构划分的时候并不会造成影响,因为空白区域在都可以用代码来实现。不过一些文字区域你不能贴着文字的上下来划分,因为文字都是自带行高的。
另外,有些地方可能会有一部分小图片或者一部分内容覆盖在外面大盒子上,这部分在划分结构的时候可以不用管,因为后期在代码实现的时候我们可以利用定位技术实现。
6. 前端面试题系列之-CSS及页面布局篇
CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。可以用简单的方式满足很多常见的复杂的布局需求。它的优势在于开发人员只是声明布局应该具有的行为,而不需要给出具体的实现方式。浏览器会负责完成实际的布局。该布局模型在主流浏览器中都得到了支持。
采用flex布局的元素,成为flex容器。它的所有子元素自动成为容器成员,称为flex项目。常用的,设置到容器上的属性有:
设置到项目上的属性:
(Block Formatting Context)块级格式化上下文。BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此.并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。
上述方法都可以创建BFC,但是会带来一些负面影响:
::before是css3的写法,:before是css2的写法,用来设置对象前的内容
:before的兼容性要比::before好
更准确的说法
1、transition 是过渡,是样式值的变化的过程,只有开始和结束;animation 其实也叫关键帧,通过和 keyframe 结合可以设置中间帧的一个状态;
2、animation 配合 @keyframe 可以不触发时间就触发这个过程,而 transition 需要通过 hover 或者 js 事件来配合触发;
3、animation 可以设置很多的属性,比如循环次数,动画结束的状态等等,transition 只能触发一次;
4、animation 可以结合 keyframe 设置每一帧,但是 transition 只有两帧;
常规方法
不需要使用transform属性时
webkit内核
参考链接:
CSS实现不换行/自动换行/文本超出隐藏显示省略号
object-fit CSS 属性指定可替换元素的内容应该如何适应到其使用的高度和宽度确定的框。这个CSS属性可以达到最佳最完美的居中自动剪裁图片的功能
@import规则一定要先于除了@charset的其他任何CSS规则。
不推荐使用@import:
因为浏览器的兼容的问题,不同浏览器有些标签的默认值是不同的,如果没有CSS初始化往往会出现浏览器之间的页面显示差异。
伪元素和伪类的区别总结
css继承指的是被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性。
相关链接:
CSS 继承,哪些属性能继承,哪些不能
z-index可以改变元素层叠顺序,z-index较大的会叠加在z-index较小的元素上方。z-index值相同时,则按照文档流顺序,后面的覆盖前边的。
px就是pixel的缩写,意为像素。px就是一张图片最小的一个点,一张位图就是千千万万的这样的点构成的,比如常常听到的电脑像素是1024x768的,表示的是水平方向是1024个像素点,垂直方向是768个像素点。注意css中的1px并不一定是物理像素的一个像素块,需要根据DPR计算,对应多少物理像素块
设备像素比:dpr = 物理像素 / 逻辑像素(px),例如,iPhone6的dpr为2,物理像素750(x轴),则它的逻辑像素为375
参考物是父元素的font-size,具有继承的特点。如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。
css3新单位,相对于根元素html(网页)的font-size,不会像em那样,依赖于父元素的字体大小,而造成混乱。
css3新单位,viewpoint width的缩写,视窗宽度,1vw等于视窗宽度的1%。举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12 px。
1英寸(inch)=2.54厘米(cm)
手机对角线的长度换算成英寸
屏幕横向和纵向的像素点
1px即代表一个物理像素点/像素块
PPI,是每英寸可以显示的像素点的英文缩写。如果说上面分辨率是一个质量总量的概念,那么,ppi就是密度的概念。我们可以通过屏幕的像素总量除以屏幕大小来计算屏幕的PPI,公式如下: a:横向像素数量,b:纵向像素数量,c:屏幕尺寸(英寸)
1px与多少厘米之间是不能直接划等号的,需要看分辨率。
一般电脑的像素分辨率是72ppi,计算公式: (((1**2 + 1**2)**0.5)/72)*2.54 ,此时1px=0.0498cm,1cm=25px;
很多手机是300ppi,计算公式: (((1**2 + 1**2)**0.5)/300)*2.54 ,此时1px=0.0119cm。
参考链接:
画一条0.5px的线
在继承性上:
一开始针对低版本的浏览器构建页面,满足最基本的功能,再针对高级浏 览器进行效果,交互,追加各种功能以达到更好用户体验,换句话说,就是以最低要求,实现最基础功能为基本,向上兼容。以css为例,以下这种写法就是渐进增强。
一开始针对一个高版本的浏览器构建页面,先完善所有的功能。然后针对各个不同的浏览器进行测试,修复,保证低级浏览器也有基本功能 就好,低级浏览器被认为“简陋却无妨 (poor, but passable)” 可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较 大的错误之外,其它的差异将被直接忽略。也就是以高要求,高版本为基准,向下兼容。同样以css为例,优雅降级的写法如下。
渐进增强,开发时间长,成本高,优雅降级,节约成本,开发周期短。
7. 前端面试题(1)——页面布局
我这边总结了五种方法, 如有不正确,欢迎批评指正~
8. 前端不知道怎么布局
在谈WEB前端怎么布局前,我们先梳理前端的布局类型,具体有以下几种:
1.静态布局:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端。
2.流式布局:布局特点是屏幕分辨率变化时,页面里元素的大小会变化而但布局不变。
3.自适应布局:自适应布局的特点是分别为不同的屏幕分辨率定义布局,即创建多个静态布局,每个静态布局对应一个屏幕分辨率范围。
4.响应式布局:布局特点是每个屏幕分辨率下面会有一个布局样式,即元素位置和大小都会变。
那么我们如何布局呢?通过以下几点来选择布局。
1.如果只做电脑端,最好的选择是静态布局。
2.如果做移动端,且设计对高度和元素间距要求不高,那么弹性布局(rem+js)是最好的选择,通过一份css+一份js调节font-size就搞定。
3.如果电脑端,移动端要兼容,而且要求很高,那么响应式布局还是最好的选择。前提是设计根据不同的高宽做不同的设计,响应式根据媒体查询做不同的布局。
9. 前端布局需要学习什么知识呀
css、html和table。
前端布局使用css,即层叠样式表,控制页面的显示。以前是使用table进行布局的,但由于table布局不便于维护,每次修改的时候都需要更改页面结构。所以后来就逐渐被css所代替,在需要使用表格的时候才使用table。
除了要使用css之外,还要使用html。html用来表明页面的结构,css决定页面结构的显示方式。
10. 关于页面布局(前端也就是页面布局了吧(胡说))
一个前端连页面都搞不好,真的就有点--------(废物了,我说的我额)
我在做这个小程序页面的时候,很快基本一会儿就搞定了,功能的话 基本上两天就好了,但是!!我竟然调试了将近一个月。设计图是我在做完之后才给的,当然我并不是说设计图给我晚,而是!!我的布局一开始就写的太随意的,导致后期在苹果和各种安卓机型上面 就出现了各种错乱,又不想重新写 又要兼容各种机型(说实话,当时我已经开始讨厌我们的软件测试了,因为他天天比着尺子让我调试,我每天最不想面对的就是他了)
所以在做之前一定要先规划 header就是header body就是body fotter就是底部 ,该浮动千万别定位,改定位千万别用margin:100 200 300的去调,个人认为 超过100就会出现问题了,pc端的话,就不说了。
形式方向那一块在做的时候 我就是以为是一整块 ,让他在那里挤着堆着,最后导致 上下两个方向 就是在各种机子上面位置有问题。最后又重新在方向里面设了一个块 才解决了问题,还有就是滥用百分比,导致页面咋不同的手机上面会左右滑动,那用户体验真的渣炸了,我找出问题的地方找了半个小时(浪费时间),
还有就是不要频繁调重复的接口。能及时存下来数据就及时存下来,如果不这样的话,就能着测试鄙视你吧。(没有例如,我不想打字了 )