自媒体查询、flexd性布局、响应式布局及 rem 布局

自媒体查询、flexd性布局、响应式布局及 rem 布局,第1张

    自媒体查询、rem布局、响应式布局技术,是三个不同的技术。 自媒体查询 常用在适配不同的设备显示场景下,根据屏幕大小显示不同页面,但功能大致不变的这么一个技术。 rem布局 它是一个长度单位,这个长度单位是根据‘根元素’的字体大小的单位确定的(根元素字体大小 = 1rem)。 响应式布局 它是在页面宽度改变时,整个页面或者页面中的局部随着页面的缩放进行响应并实时变化( 响应式布局和自媒体查询有区别 )。在如今复杂的开发中这几个技术越来越密不可分,在项目中可以通过实际需求进行搭配。

        功能: 自媒体查询主要是设置不同的设备屏幕下的显示样式。 

        获取浏览器或设备宽度:

                    min-device-width (设备的宽度)\   min-width  (浏览器的宽度)   (注释:也可以获取高度,就是将width改写成height)

        方法:

                    

         功能:   就是使用flex对页面进行布局,也可以是响应式的。

          方法:    一下方法为flex常用方法,具体学习可以点击链接   flex布局

        概念: 指相对跟元素的字体大小的单位。(补充:rem于em的区别一个是以根元素字体大小为参考,em是以父级元素为参考)

        使用方法:

                一般使用媒体查询+rem或js,在不同宽度的窗口下自动调节字体大小。

布局特点: 不同设备对应不同的HTML或者局部自适应。(不同的设备不同的页面)

        布局特点:确保一个页面在所有终端上,都能显示出令人满意的效果。(一套方案,处处运行。)

        设计思路:使用自媒体查询及用 % 或 rem 作为单位,对不同视口设备进行编写样式。

            布局特点:为了保证在各种屏幕上得不失真,就要根据实际屏幕宽度做等比换算。(一套方案,是不同尺寸、分辨率的视口呈现出较好的效果。)

             设计思路:使用自媒体查询及用 % 或 rem 作为单位,对不同视口设备进行编写样式。

总结:

        在项目开发中,根据项目的实际情况选择不同的技术的搭配,这样才能实现业务的效果。

市场参考价:停产

HDMI接口

基本参数

产品类型:家用

超极本定位:变形

触控屏:是

*** 作系统:Windows 8 简体中文版

处理器

处理器系列:英特尔四代酷睿i5系列

处理器型号:Intel 酷睿 i5 4200U

处理器主频:16GHz

最高睿频:26GHz

三级缓存:3MB

核心类型:Haswell

核心数/线程:双核心/四线程

总线规格:5GT/s

存储设备

内存类型:DDR3

内存描述:DDR3L(低电压版)

内存容量:4GB

最大支持内存:8GB

硬盘类型:机械硬盘

硬盘容量:500GB

硬盘转速:5400RPM

光驱类型:无内置光驱

显示屏

屏幕尺寸:140英寸

屏幕比例:16:9

屏幕分辨率:1366×768

屏幕技术:LED背光

显卡

显卡类型:双显卡

显卡芯片:NVIDIA GeForce GT 720M+Intel GMA HD 4400

显存类型:DDR3

显存容量:2GB

显存位宽:64bit

流处理器个数:96

DirectX版本:DirectX 11

多媒体设备

麦克风:内置麦克风

扬声器:内置扬声器

音频系统:杜比认证音效

网络通信

无线网卡:80211b/g/n

有线网卡:100Mbps网卡

I/O接口

数据接口:2×USB20+1×USB30

视频接口:HDMI

音频接口:耳机输出接口,麦克风输入接口

其它接口:电源接口

读卡器:多合1读卡器

输入设备

指取设备:触摸板

键盘描述:巧克力键盘

电源规格

电池类型:4芯锂离子电池

续航时间:3-5小时左右,具体时间视使用环境而定

电源适配器:100-240V AC、50/60Hz国际通用电源适配器

外观特征

外壳材质:复合材质

外观描述:银色腰线

外观尺寸:3432×2509×6-215mm

产品厚度:6-215mm

产品重量:2Kg

其它信息

包装清单:笔记本主机,保修卡,电池,电源适配器,说明书

附带软件:附带软件

售后服务:整机免费保修2年,电池1年

推荐适用类型

家庭娱乐:适合联想(lenovo)Flex14AP - IFI 大黄蜂笔记本电脑屏幕评测 - ZOL中关村

1 1 这款产品的显示屏为14英寸,分辨率选用了主流的1366×768,同时为了控制成本,因此并没有采用IPS显示面板,但从笔者个人的感受来说,Flex

2 2 注:此篇评测产品为联想 Flex14AT-IFI(橙色腰线) 支持触控越来越成为笔记本的标配功能 最后再说说触控。Windows 8系统可以说是因触控

我们只会用到一点点儿CSS布局的属性,虽然少,但既然要用到,就得把它们总结在这里,搞明白。

在了解CSS布局的相关属性之前,我们先了解一下 盒子模型——CSS会把每个组件都看作是一个盒子,每个盒子从内往外有三个部分:

组件的宽度和高度决定了它在屏幕上显示的尺寸,一个组件的宽度和高度就是它 外边框所包围矩形 的宽度和高度,iOS里也是这样的。

我们可以通过 width 和 height 属性给一个组件设置固定的宽度,不过需要注意 这两个属性只能接收数值,不能带单位,这是因为RN要自己去适配安卓和iOS的单位。

在RN里,我们想让一个组件自适应宽高,要分两步。 首先我们要让该组件撑满它的父视图,即如果我们想自适应宽度,就得先让子视图的宽度撑满它父视图的宽度,如果我们想自适应高度,就得先让子视图撑满它父视图的高度,如果我们宽度和高度都想自适应,就得先让子视图把它父视图的宽度和高度都撑满。然后才能像我们iOS里使用Masonry那样,通过给组件添加上边距、左边距、下边距、右边距等约束来实现宽度和高度的自适应。

这里再对第一步做个解释, item的 flex: 1 属性可以让item在主轴上撑满它的容器,容器的 alignItems: 'stretch' 属性 + item在侧轴上不设置空间可以让item在侧轴上撑满它的容器。 好像有点不明白是吧,我们再通过一个例子来说得明了点,RN里不是默认主轴为竖向、侧轴为横向嘛,我们就采取这个默认状态来举例子。 在RN里,默认主轴为竖向、侧轴为横向的状态下,如果我们想让某个组件自适应高度,就得首先在它自身上设置 flex: 1 属性,来让它的高度撑满它的父视图;如果我们想让某个组件自适应宽度,就得首先在它父视图身上设置 alignItems: 'stretch' 属性(当然默认就是这个值),这还不够,你还得确保不给这个组件设置 width 属性或者 width 属性的值设为 auto ;如果我们想让一个组件自适应宽高,则两者都得做。 当然,如果我们设置了主轴为横向、侧轴为竖向,其实也是一样的道理,自己捋一下就知道怎么做了。如果还是看不懂的话,没有关系,下面我们会详细谈到这几个属性,等你学了这几个属性,反过头来看这里就明白了。

Flex是Flexible Box的缩写,可译为灵活的、有d性的盒子。那Flex布局就是Flexible Box布局的缩写,就译为d性盒子布局,用来对一个盒子进行灵活的布局。

在了解Flex布局之前,我们得先了解一下Flex布局里的两对儿 重要的 概念。

采用Flex布局的组件,被称为Flex容器(flex container),简称容器(container)。

这个组件上的子组件,被称为Flex项目(flex item),简称item(项目)。

我们可以把容器和item看做是父视图和子视图的关系, 因此下文中的容器、父组件、父视图将是一样的概念,item、组件、子视图将是一样的概念,组件和视图将是一样的概念。

每个容器都有两根轴,一个是 主轴, 一个是 侧轴

容器里众多的 item自动沿主轴进行排列。

一个item在主轴方向上所占据的空间称为 main size ,一个item在侧轴方向上所占据的空间称为 cross size 。

RN里主轴的默认方向为竖向,侧轴为横向。 浏览器里主轴的默认方向为横向,侧轴为竖向,下面我们讲Flex布局的属性时会采用浏览器的状态,学会后对应到RN里,换个主轴方向就可以了。

用在容器上的属性,最常用的有 5个 而且这些属性还都不是从来设置容器自己的布局,而是用来设置容器里item的布局。

flex-direction 属性用来设置主轴的方向,即容器里item自动排列的方向。 在浏览器里,主轴的方向默认为横向,所以 flex-direction 属性的默认值为 row 。

它有4种取值。

justify-content 属性用来设置item在主轴上的对齐方式。

它有5种取值。

align-items 属性用来设置item在侧轴上的对齐方式。

它有5种取值。

默认情况下,一个容器只有一条主轴,所有的item都会沿着这条主轴自动排列下去,但是如果item太多了,一个屏幕长度的主轴根本串儿不下这么多item,那后面的item就会溢出屏幕,而界面还不是 ScrollView ,不能滚动,怎么办呢?

flex-wrap 属性用来设置换行,即当容器主轴上显示不下那么多的item时,我们可以让item换行来显示,并且一旦设置了换行,那么这个容器就不再是一条主轴了,而是会有多条平行的主轴。

它有3种取值。

align-content 属性用来设置多条主轴的对齐方式, 如果项目只有一根轴线,该属性不起作用, 即 align-content 属性要基于 flex-wrap 属性设置了换行才有使用的意义。

它有6种取值。

用在item上的属性,最常用的有 2个 这些属性都是用来设置item自己的布局。

在第1小节容器的属性,我们已经通过 align-items 属性统一设置了容器里item在侧轴上的对齐方式,但如果其中某个item不想遵循这个对齐方式怎么办呢?我们会常见到这种场景,10个里有8个item是一样的对齐方式,就有1、2个item特立独行,那我们就得用item自己的 align-self 属性来单独给它们设置对齐方式了。

align-self 属性用来设置单个item在侧轴上的对齐方式, 注意是给特立独行的单个item设置哦,而且是侧轴,它会覆盖它容器的 align-items 属性,当然如果不设置这个属性,默认值就为 auto ,即item会默认使用容器的 align-items 属性给它设置的对齐方式。

它有6种取值,除了 auto ,其他都与 align-items 属性完全一致。怎么说呢,item的 align-self 属性似乎是用来造反的,反抗它容器的 align-items 属性。

flex 属性接收一个整数值, flex 属性描述起来太麻烦了,可以自行去搜索加深理解,我这里只列举出它的用途及注意事项。

(1) flex 属性有三个用途

(2)使用 flex 属性需注意

iOS里怎么使用Masonry布局的,RN里就怎么使用 Flex布局+CSS布局 来做布局就行了,它们布局的思路是一样的, 一个组件也同样至少需要四个约束。

当然,它们之间有一个极其细小的差别,那就是:上面提到的“RN里组件自适应宽高分两步”,而iOS里Masonry才不管你什么撑满不撑满呢。

当然,它们之间有一个极其巨大的差别,那就是:iOS里是没有主轴和侧轴之分的,你可以在一个父视图上横向、竖向同时放控件,并同时完成横向和竖向的布局。但RN里有主轴和侧轴之分,我们添加的组件只会沿着主轴排列,不可能同时出现横向和竖向排列,并且布局的时候也只能是沿着主轴布局,不可能同时完成两个方向的布局。

下面我们就通过几个小练习,来对比一下Masonry布局和Flex布局+CSS布局的思路,加深对RN里怎么布局组件的理解。

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

参考博客:

阮一峰的《Flex布局:语法篇》

阮一峰的《Flex布局:实例篇》

幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件。但他又是一个比较独特的"exe"文件。下面就来探讨一下,用C#是如何编写屏幕保护

的整个过程。

一.本文中介绍的程序设计及运行环境

(1)微软视窗2000 服务器版

(2)Net Framework SDK 正式版

二.C#编写字幕显示屏保程序的关键步骤以及解决方法:

(1)设定程序的窗体符合屏幕保护的要求:

由于屏幕保护程序就是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计。但屏幕保护有自身的特点。譬如:屏幕保护都是充满

整个屏幕的,并且没有无边。屏幕保护运行的时候,不能显示任务栏。在程序设计中实现这些特点,关键就在于对窗体的某些属性的设定上。下面是对窗体属性的

设定,就可以满足屏幕保护的要求,具体如下:

thisName = "ScreenSaver" ;

//窗体运行后无边界

thisFormBorderStyle = FormBorderStyleNone ;

//程序运行后不显示在任务栏上

thisShowInTaskbar = false ;

//窗体运行后,最大化,充满整个屏幕

(2)使得字符在屏幕上不断移动:

实现字符在屏幕上像字符屏保一样不断移动,是通过一个定时器来完成的。不断移动的字符,其实就是一个Label组件。当设定好Label组件要显示的字符后,

也就设定了在屏幕上要移动的字符。定时器每隔一段时间,都把Label组件的横坐标减去一个定值,这样在定时器的驱动下,Label组件的位置就变换了,带来的视

觉效果,就是字符不断移动。

当Label组件的位置已经移动到屏幕的外面以后,这是就有把Label组件的横坐标回复到起始值(即:屏幕的最右边),然后判断Label组件的纵坐标是否位于屏

幕的顶部,如果在顶部,则把纵坐标的位置重置在中部;如果在中部,则重置在底部;如果在底部,则重置在顶部。经过了这些判断,字符不仅可以实现从右往左

移动,还可以变换字符进入屏幕的位置。从而也丰富了屏幕保护的内容。其实要实现这些判断,首先还必须知道屏幕的工作区域,因为只有先知道屏幕的工作区域

,在能够实现对Label组件的横坐标和纵坐标的设定工作。下面就是实现此步骤地具体代码:

//得到计算机屏幕的工作区域

Rectangle ssWorkArea = ScreenGetWorkingArea ( this ) ;

lblMarqueeLocation = new Point ( ssWorkAreaWidth - iDistance ,

lblMarqueeLocationY ) ;

//显示标签

lblMarqueeVisible = true ;

// 增加2个象素点,你可以通过修改speed的值来改变标签的移动速度

iDistance += speed ;

// 如果标签已经走出屏幕,则把标签的位置重定位到屏幕的右边

if ( lblMarqueeLocationX <= -( lblMarqueeWidth ) )

{

//Reset the distance to 0

iDistance = 0 ;

//判断标签的位置是否在顶部,如果在,则重定位到中部

if ( lblMarqueeLocationY == 0)

lblMarqueeLocation = new Point ( lblMarqueeLocationX , ( ssWorkAreaHeight / 2 ) ) ;

//判断标签的位置是否在中部,如果在,则重定位到底部

else if ( lblMarqueeLocationY == ssWorkAreaHeight / 2 )

lblMarqueeLocation = new Point ( lblMarqueeLocationX , ssWorkAreaHeight - lblMarqueeHeight ) ;

//重定位到顶部

else

lblMarqueeLocation = new Point ( lblMarqueeLocationX , 0 ) ;

}

(3)检测键盘、鼠标状态,确定退出屏幕保护程序:

在屏幕保护运行的时候,当键盘被按动,或者鼠标移动,屏幕保护都会关闭。在实际的程序设计中,检测键盘是否被按动,通过"KeyDown"事件就可以判断。在

程序中,判断鼠标是否移动的思路是通过二个全局变量记录下,程序刚刚运行的时候的鼠标的位置(即:X和Y),当鼠标移动的时候,判断移动后的位置和记录的

位置是否有出入,如果有出入,就关闭屏保。下面代码功能就是检测鼠标移动,并结束屏幕保护,具体如下:

// 把鼠标刚刚开始移动的位置给记录下来

if ( ixStart == 0 && iyStart == 0 )

{

ixStart = eX ;

iyStart = eY ;

return ;

}

//判断自屏幕保护程序运行后,鼠标的位置是否变动

else if ( eX != ixStart || eY != iyStart )

{

Cursor Show ( ) ;

timerSaverEnabled = false ;

Application Exit ( ) ;

};

其中"ixStar"和"iyStart"就是记录程序运行的时候,鼠标的起始位置。

(4)对Windows对屏幕保护设定参数的响应:

当屏幕保护加入到Windows系统后,你就可以通过Windows系统来设定屏幕保护的属性了,由于我们制作的这个屏幕保护,没有可供设置的选项,但也要对

Windows的"设置"按钮进行响应。而要完成这种响应,所用的知识就是在Windows系统中按动"设置"按钮,对屏幕保护进行设定时,其实也就对屏保程序传递"/c"字

符。而要设定口令,则会传递"/a"字符,据此,可以得到代码:

if (args [ 0 ]Substring ( 0 , 2 )Equals ( "/c" ) )

{

MessageBoxShow("此屏幕保护没有可供设置的选项!","用C#制造屏幕保护" ,

MessageBoxButtonsOK ,MessageBoxIconInformation ) ;

ApplicationExit ( ) ;

}

else if ( args [ 0 ] == "/a" )

{

MessageBoxShow("此屏幕保护没有可供设定口令的选项!","用C#制造屏幕保护" ,

MessageBoxButtonsOK ,MessageBoxIconInformation ) ;

ApplicationExit ( ) ;

}

三.总结:

由于屏幕保护都是Windows程序,所以编译的时候,要产生Windows程序,编译的命令如下:

csc /t:winexe screencs

在正确编译"Screencs"后,可以得到"Screenexe"文件,把"Screenexe"改名为"Screenscr",并拷贝到Windows的"System32"目录中去。至此这个字符屏保

d性盒子是CSS3的一种新布局模式。

CSS3 d性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。

引入d性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

首先要明白几个概念:

主轴 :Flex容器的主轴主要用来配置Flex项目,默认是水平方向

侧轴 :与主轴垂直的轴称作侧轴,默认是垂直方向的

方向 :默认主轴从左向右,侧轴默认从上到下

主轴和侧轴并不是固定不变的,通过flex-direction可以互换。

表格中的数字表示支持该属性的第一个浏览器的版本号。

紧跟在数字后面的 -webkit- 或 -moz- 为指定浏览器的前缀。

d性盒子由d性容器(Flex container)和d性子元素(Flex item)组成。

d性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为d性容器。

d性容器内包含了一个或多个d性子元素。

注意: d性容器外及d性子元素内是正常渲染的。d性盒子只定义了d性子元素如何在d性容器内布局。

d性子元素通常在d性盒子内一行显示。默认情况每个容器只有一行。

以下元素展示了d性子元素在一行内显示,从左到右:

决定项目的方向。

注意: 如果元素不是d性盒对象的元素,则 flex-direction 属性不起作用。

属性值

flex-wrap 属性规定flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向。

可以取三个值:

(1) nowrap (默认):不换行。

(2)wrap:换行,第一行在上方。

(3)wrap-reverse:换行,第一行在下方。

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

justify-content 用于设置或检索d性盒子元素在主轴(横轴)方向上的对齐方式。

align-items 属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。

数值越小,排列越靠前,默认为0。

<integer>:用整数值来定义排列顺序,数值小的排在前面。可以为负值,默认为0。

<integer>:一个数字,规定项目将相对于其他灵活的项目进行扩展的量。默认值是 0。

flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。默认为1,即如果空间不足,该项目将缩小。负值对该属性无效

<integer>:一个数字,规定项目将相对于其他灵活的项目进行收缩的量。默认值是 1。

如果设置为0不进行收缩,值越大收缩越多。

以上就是关于自媒体查询、flexd性布局、响应式布局及 rem 布局全部的内容,包括:自媒体查询、flexd性布局、响应式布局及 rem 布局、ideapadflex14api屏幕、CSS布局 + Flex布局等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9774003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存