草庐IT

浮动

cherry0420 2023-04-24 原文

1.浮动(float)

1.1传统网页布局的三种方式

网页布局的本质———用CSS来摆放盒子。把盒子摆放到相应位置。

CSS提供了三种传统布局方式(简单来说,就是盒子如何进行排列顺序):

1. 普通流(标准流)。

2. 浮动。

3. 定位。

1.2标准流(普通流/文档流)

所谓的标准流:就是标签按照规定好默认方式排列。

1.2.1 块级元素

块级元素会独占一行,从上向下顺序排类。

常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table。

1.2.2 行内元素

行内元素会按照顺序,从左到右顺序排类,碰到父元素边缘则自动换行。

常用元素:span、a、i、em等。

1.3 为什么需要浮动?

让多个块级盒子(div)水平排列成一行,让两个盒子左右对齐。

总结:有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局,因为浮动可以改变元素标签默认的排列方式。

浮动最典型的应用:可以让多个块级元素一行内排列显示。

网页布局的第一标准:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

1.4 什么是浮动?

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

语法:

选择器 {float: 属性值;}


属性值

描述

none

元素不浮动(默认值)。

left

元素向浮动。

right

元素向浮动。

1.5 浮动特性

1.5.1 特性

1. 浮动元素,会脱离标准流,脱离标准普通流的控制(浮)移动到指定位置(动)(脱标)。

2. 浮动的元素会一行内显示并且元素顶部对齐

3. 浮动元素会具有行内块元素的特性。

4. 浮动的盒子不再保留原来的位置 ,漂浮在普通流的上面,不占位置。

 注意:

1. 浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。

2. 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定。

1.6 浮动元素经常和标准流父级搭配使用

为了约束浮动元素位置,网页布局一般采取的策略是:

先用标签流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则。

2. 常见网页布局

2.1 浮动布局注意点

2.1.1 浮动和标准流的父亲盒子搭配

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。

2.1.2一个元素浮动了,理论上其余的兄弟元素也要浮动

一个盒子里面有多个盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动,以防止引起问题。

浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流。

3.1 为什么需要清除浮动?

由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响标准流的盒子。

3.2 清除浮动本质

清除浮动的本质是清除浮动元素造成的影响。

如果父盒子本身有高度,则不需要清除浮动。

清除浮动之后,父级就会根据浮动的子盒子自动检查高度,父级有了高度,就不会影响下面的标准流了。

3.3 清除浮动

语法:

选择器(clear: 属性值;)


属性值

描述

left

不允许左侧有浮动元素(清除左侧浮动的影响)。

right

不允许右侧有浮动元素(清除右侧浮动的影响)。

both

同时清除左右两侧浮动的影响(几乎)。

清除浮动的策略是:闭合浮动。

3.3.1 清除浮动方法

1. 额外标签法

额外标签法也称为隔墙法,是W3C推荐的做法。

额外标签法会在浮动元素末尾添加一个空的标签。例如<div style="clear.both"></div>,或者其他标签(如<br />)。

优点:通俗易懂,书写方便。

缺点:添加许多无意义的标签,结构化较差。

注意:要求这个新的标签必须是块级元素。

2. 父级添加overflow属性

可以给父级元素添加overflow属性,将属性值设置为hiddenautoscroll

子不教父之过,注意是给父元素添加代码。

优点:代码简洁。

缺点:无法显示溢出的部分。

3. 父级添加after伪元素

:after方式是额外标签法的升级版。也是给父元素添加。

.clearfix :after {

content: "";

display: block;

height: 0;

clear: both;
visibility: hidden;

}
.clearfix {        /* IE6、7 专有 */
*zoom: 1;

}

优点:没有增加标签,结构更简单。

缺点:照顾低版本浏览器。

代表网站:百度、淘宝网、网易等。

4. 父级添加双伪元素

也是给父元素添加。

.clearfix :before,.clearfix :after {

content: "";
display: table;

}

.clearfix :after {

clear: both;

}

.clearfix {
*zoom: 1;

}

优点:代码更简洁。

缺点:照顾低版本浏览器。

4. PS切图

4.1 常见的图片格式

1. jpg图像格式:JPEG(JPG)对色彩的信息保存较好,高清,颜色较多,产品类的图片经常用jpg格式的

2. gif图像格式:GIF格式最多只能储存256色,所以通常用来显示简单图形及字体,但是可以保存透明背景和动画效果,实际经常用于一些图片小动画效果

3. png图像格式是一种新兴的网络图形格式,结合了GIF和JPEG的优点,具有存储形式丰富的特点,能够保持透明背景,如果想要切成背景透明的图片请选择png格式

4. PSD图像格式PSD格式是Photoshop的专用格式,里面可以存放图层、通道、遮罩等多种设计稿。

4.2 图层切图

最简单的切图方式:右击图层->快速导出为PNG。

但是很多情况下,需要合并图层再导出:

1. 选中需要的图层:图层菜单->合并图层(ctrl+e)。

2. 右击->快速导出为PNG。

4.3 切片切图

4.3.1 方法

1. 利用切片选中图片

利用切片工具手动划出。

2. 导出选中的图片

文件菜单->导出->存储为web设备所用格式->选择要的图片格式->存储。

4.4 PS插件切图

Cutterman是一款运行在ps中的插件,能够自动将你需要的图层进行输出,以代替传统的手工”导出web所用的格式“以及使用切片工具进行按个切片的繁琐流程。

注意:一定要安装完整版。

有关浮动的更多相关文章

  1. php - 在 PhpWord 中创建右浮动图像 - 2

    我想要右边的图片,左边的文字围绕着图片float。反过来效果很好,在Recipiessectioninthedocumentation上也有一个例子.但是,我没有使用漂浮在右侧的图像来实现这一点。我尝试了什么:addImage('myimage.png',array('width'=>320,'height'=>240,'align'=>'right','wrappingStyle'=>'square','positioning'=>'absolute'));或addImage('myimage.png',array('width'=>320,'height'=>240,'align'

  2. 期货浮动盈亏(期货浮动盈亏和盯市盈亏) - 2

    浮动盈亏和当日参考盈亏,什么区别?赚还是赔浮动盈亏是你仓位里所有股票从买入到当前的合计盈亏,当日参考盈亏是你仓位里所有股票今天的合计收益。举个最简单的例子,5天前你以1元价格买入1000股,5天来股价累计增幅10%,所以浮动盈亏是100元。但今天股票跌幅为1%,所以当日参考盈亏为-10元。股票中的浮动盈亏是相对于投资者的买入成本的盈亏,当日参考盈亏是相对于上一个交易日收盘的盈亏。浮动盈亏是投资者总体盈亏,当日参考盈亏主要用来表现当天的盈亏。浮动盈亏用来提现投资者买入之后到目前是赚钱还是亏钱,当日参考盈亏的作用是投资者可以和当天的指数做对比,看当天是否跑赢指数,相对指数是否有超额收益。浮动盈亏也

  3. android - 在 Android 中使文本右浮动 - 2

    我正在尝试在Android中实现一些类似于HTML中的float="right"的文本布局。我在屏幕的某个区域有两个文本项。我希望其中一个在TextView中左对齐,其中一个右对齐,就像这样(其中两端的|代表封闭容器):-|Firsttextitemlabel|到目前为止,这听起来很简单:我可以用RelativeLayout中的两个TextView来做到这一点,右侧的设置为layout_alignParentRight="true"或layout_gravity="right"。但也有左侧文本太长而无法容纳剩余空间的情况。使用RelativeLayout它会与右侧文本重叠,但在这种情况

  4. Android:如何使 TextView 向左浮动? - 2

    我想让TextView向左浮动(就像cssfloat一样)。我有这么多TextView的原因是我希望我的应用程序中的每个词都可以点击。所以我想要这个结果:目前,我有以下xml代码:但是结果是这样的:我是android开发新手,非常感谢。:) 最佳答案 您真正需要的是一个包含整个View的行布局。不幸的是,Android没有。不过,你很幸运,我做到了!;)它是一个自定义类,但是你可以在xml中使用它,只要你完全限定它,并在res/values下包含以下attrs.xml文件这是来源:packagecom.example.widget;

  5. 网络拓扑配置案例练习(VRRP,浮动路由,DHCP,三层交换机配置) - 2

    网络拓扑配置案例网络拓扑配置案例练习网络拓扑需求描述具体操作命令交换机创建vlan,配置access、trunk口,划分vlanvrrp配置路由配置验证vrrp和浮动路由DHCP配置总结网络拓扑配置案例练习在这篇文章中将记录网络的常见配置:VRRP,浮动路由,DHCP,三层交换机配置等,练习怎么配置这些内容,话不多说,直接开始网络拓扑在这个网络拓扑中,划分了4个vlan,每台pc对应一个vlan;配置了两台三层交换机(LSW3和LSW4),做虚拟路由冗余协议VRRP1,与路由器AR1一起做浮动路由2配置(概念就不过多解释,直接上引用,不懂的小伙伴可以点击进入查看);路由器AR1为边界路由器,A

  6. html - 如何避免文本在带有文本和右浮动标签的 td 中换行 - 2

    http://jsfiddle.net/a2kvU/abcdefghijkl123XYZXYZXYZXYZXYZXYZabcdefghi456XYZXYZXYZXYZXYZXYZabcdef789XYZXYZXYZXYZXYZXYZabc1000XYZXYZXYZXYZXYZXYZ.nowrap{white-space:nowrap;}在大多数屏幕尺寸下,这看起来像在小屏幕尺寸下(以及足够大的真实文本),这看起来像注意左栏的换行。如何强制左列不换行? 最佳答案 您需要使用nowrap类为您定义一个最小宽度属性,如下所示:td.now

  7. html - 如何避免文本在带有文本和右浮动标签的 td 中换行 - 2

    http://jsfiddle.net/a2kvU/abcdefghijkl123XYZXYZXYZXYZXYZXYZabcdefghi456XYZXYZXYZXYZXYZXYZabcdef789XYZXYZXYZXYZXYZXYZabc1000XYZXYZXYZXYZXYZXYZ.nowrap{white-space:nowrap;}在大多数屏幕尺寸下,这看起来像在小屏幕尺寸下(以及足够大的真实文本),这看起来像注意左栏的换行。如何强制左列不换行? 最佳答案 您需要使用nowrap类为您定义一个最小宽度属性,如下所示:td.now

  8. html - 向左浮动 100% 高度 div - div 之间的间隙 - 2

    标记CSShtml,body{margin:0;padding:0;border:0;overflow:hidden;width:100%;height:100%;}*htmlbody{height:100%;width:100%;}*{margin:0;padding:0;}.wrapper{position:fixed;top:0px;bottom:0px;left:0px;right:0px;height:100%;width:100%;}*html.wrapper{width:100%;height:100%;}#left{float:left;height:100%;widt

  9. html - 向左浮动 100% 高度 div - div 之间的间隙 - 2

    标记CSShtml,body{margin:0;padding:0;border:0;overflow:hidden;width:100%;height:100%;}*htmlbody{height:100%;width:100%;}*{margin:0;padding:0;}.wrapper{position:fixed;top:0px;bottom:0px;left:0px;right:0px;height:100%;width:100%;}*html.wrapper{width:100%;height:100%;}#left{float:left;height:100%;widt

  10. html - 拉伸(stretch)右浮动 div 宽度? - 2

    我有2个float:leftdiv,第一个是固定的,我希望第二个div拉伸(stretch)剩余空间。有什么想法吗?谢谢 最佳答案 在CSS2中:#container{display:table;table-layout:fixed;}#leftform,#rightform{display:table-cell;}#leftform{width:100px;}在IE黑客世界中:#container{padding-left:100px;}#leftform{float:left;width:100px;margin-left:-1

随机推荐