css 图片换行_好程序员web前端学习路线分享CSS浮动-文档流篇

1、纯文本的排列。

文档流就像我们的文本内容一样,所有的文字都会紧挨着,一个个排列下来,如果到了边界,就会换一行排列。当然如果敲回车或者按下空格键一般都会认为是一个词间距,因为英文中每个单词之间是有距离的,不像中文每个汉字连在一起的。所以不管你敲了几个回车,不管你敲了几个空格。程序都认为只有一个词间距的空格距离。我们把这种现象称为空白折叠现象。下图中的红色箭头就是我们敲了回车和敲了空格的效果。

c73396832e4d05f442aa34a2f114f392.png

2、文本和图片的排列

因为图文排版的原因,图片的宽度是一个整体。不像文字可以中间分开,因此在图文一起的时候我们会发现,图片作为文档流中的内容也是和一个文字元素一样,紧挨前一个文字,后面的文字也紧跟着图片。但是如果一行剩下的位置不够图片的宽度,就会自动换一行。

因为图片和一个文字元素一样,因此,图片的高度大于文字的高度,就会把这一行撑高,图片越高,行越高。在同一行的文字默认就会在图片的下端。如果你希望文字相对在图片的中间位置,那么就需要给图片设置一个CSS样式vertical-align: middle;注意一定是给图片设置,不是给文字设置。

e28b992bd2ff87672fd5cd718438fa39.png

当然如果我们设置两个张图,注意观察下面的两张图中间的缝隙,原因在于1.jpg%E2%80%9D之间是换行的。根据上面文字的特征,这里必然也会产生一个空格

c7c5e40bec675d0fe58ddd6f210bf975.png

如何解决这个问题呢,起始有很多手段,最简单的是把两个标签连接写,不要换行

7fab28ac946968962a0bf5eab790638b.png

3、块元素和行内元素

刚才我们所说的都是行内元素,也就是内容添加后会自动放在一行,如果页面的剩余的宽度比要放入的元素小,那么就会自动换行。

除了文本和图片还有一些其他的HTML标签也是行内元素。例如:

行内元素

<span>...span>行内元素

<a>...a> 链接

<br> 换行

<b>...b> 加粗

<strong>...strong> 加粗

<img src="img/1.jpg"> 图片

<sup>...sup> 上标

<sub>...sub> 下标

<i>...i> 斜体

<em>...em> 斜体

<del>...del> 删除线

<u>...u> 下划线

<input type="text" > 文本框

<textarea >...textarea> 多行文本

<select >...select> 下拉列表

上面所有的行内元素,如果直接写在代码中都会存在同一行中。当然换行br会将后面的元素都放在另外一行了。

有时候我们希望一个内容可以自己独立成行。这样我们就有了块元素。块元素会独立成行,与行内元素做明显的区分。

例如:

<address>address>地址文字

<center>...center> 居中

<h1>...h1> 标题一级

<h2>...h2> 标题二级

<h3>...h3> 标题三级

<h4>...h4> 标题四级

<h5>...h5> 标题五级

<h6>...h6> 标题六级

<hr> 水平分割线

<p>...p> 段落

<pre>...pre> 预格式化

<blockquote>...blockquote> 段落缩进 前后5个字符

<ul>...ul> 无序列表

<ol>...ol> 有序列表

<dl>...dl> 定义列表

<table>...table> 表格

<form>...form> 表单

<div>...div>块容器

块元素和行内元素具体有哪些区别呢。

行内元素

块元素

同行

输入行内元素,就会自动同行

输入块级元素,自动换行,并且独立占有一行,其它行内元素不会和它同行的。

设置宽高

行内元素部分内容是不可以设置宽高的,例如span容器,a超链接标签等等,当然有些还是可以通过CSS样式更改宽高的,例如input,img,textarea等非文字的标签

块元素直接可以设置宽高,如果没有设置就会根据该元素的父级容器的宽自动设置100%,高度是根据内容撑开的,如果没有内容,块元素默认高度是0,这点很重要。

4、行内元素和块元素的互相转换

行内元素和块元素可以互相转换的,例如:

(1) 行内元素转换为块元素

这是默认的行内元素

a939f67b48d029aab59b35dc231938c3.png

这是转换后的。我们发现文字块换行了,而且独立占有一行,在这里我们设置display:block

3b4662ffa27c9fcedbccbfedd7702248.png

(2) 块元素转换为行内元素

这是默认的div的块元素样式

ae2cee794a58722313fbfac2c5e6dd6d.png

设置为行内元素后。我们发现宽高失效了。一旦块级元素设置为行内元素,原来设置的宽高就会失效

85c5eb815d2bfa4e17c4d0fc79af1548.png

(3) 块元素和行内元素转换为行内块元素

有时候我们想让容器(不是textArea或者input)既有宽高又可以排列在同一行中,我们可以转换为行内块容器。尤其是我们希望将多个不同宽高的容器放在同一行中,并且可以通过margin调节他们的位置(注意:行内元素不能通过margin调节垂直位置,因为他们都是同一行的),这时候行内块元素就非常有必要了。

块元素变成行内块元素

70a5391b5b829e25984352a0726c4912.png

行内元素变行内块元素

7ac708ea8a07d9719b87dcfb8a8bea24.png

我们发现这两个效果都是一样的。

大家可能觉得这样很棒了,我们可以利用图文混合排列做成网页了,但是注意我们转换成了行内块元素,他们就是在行内了,任何一个更改了marginTop都会撑开了行高。就会变成这样:

00b1de80ab7c60da5462971a9f9a01a8.png

到此为止我们就认识了标准的文档流,如果想在这种标准文档流中排版出复杂的图文混排,那基本上很难。因此我们就要学习浮动。浮动就是让容器脱离了这个标准文档流,就像浮动在页面上一样。关于这个问题,我们在下一篇中详细介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东购物车的 Java 架构实现及原理

转载自 京东购物车的 Java 架构实现及原理 今天来写一下关于购物车的东西, 这里首先抛出四个问题: 1&#xff09;用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码  问&#xff1a;购物车商品还在吗&#xff1f; 2&#xff09;用户登陆了用户名密…

程序员求职面试三部曲之三:快速适应新的工作环境

新进一家公司总有各种的不适应&#xff0c;或兴奋&#xff0c; 或紧张&#xff0c;或不安&#xff0c;或迷茫各种情绪兼而有之。曾经有个家伙好不容易进了A公司&#xff0c;本来是要替代另一位即将离职的小伙伴的&#xff0c;结果&#xff0c;走得比那位兄弟还快&#xff0c;只…

问的书写规则是什么意思_化学式的定义及其书写规则

化学式的定义及其书写规则化学式是用元素符号表示纯净物组成及原子个数的式子。分子晶体的化学式叫做分子式&#xff0c;可以表示这种物质的分子构成。下面是百分网小编给大家整理的化学式的简介&#xff0c;希望能帮到大家!化学式的定义用元素符号表示纯净物组成及原子个数的式…

微软企业应用开发三大方向:跨平台、开放/开源与DevOps

软件和互联网正在改变传统企业&#xff0c;软件的职能逐渐从管理内部员工变成核心的商业竞争能力&#xff0c;在今天这种大环境下&#xff0c;我们应该用的新开发技术和方法。微软公司全球资深副总裁、开发平台事业部潘正磊&#xff08;Julia&#xff09;认为&#xff0c;把IT托…

Java程序员最常犯的 10 个错误

转载自 Java程序员最常犯的 10 个错误 这个列表总结了Java开发人员经常犯的10个错误。一 、把数组转成ArrayList 为了将数组转换为ArrayList&#xff0c;开发者经常会这样做&#xff1a; List list Arrays.asList(arr); 使用Arrays.asList()方法可以得到一个ArrayList&…

mysql5.1升级5.5_mysql数据库迁移,由版本5.1升级至5.5.29,需要注意哪些

caching_sha2_password认证插件提供更多的密码加密方式&#xff0c;并62616964757a686964616fe59b9ee7ad9431333433636131且在加密方面具有更好的表现&#xff0c;目前MySQL 8.0选用caching_sha2_password作为默认的认证插件&#xff0c;MySQL 5.7的认证插件是MySQL_native_pas…

dotnetConf 2016 线上虚拟大会

为期三天&#xff08;6月7日-9日&#xff09;的Channel9 免费.NET线上虚拟大会&#xff0c;微软产品团队及.NET社区精英一起徜徉在.NET的世界&#xff01; 与大咖Scott Hunter, Miguel de Icaza (Xamarin CTO) , ScottHanselman及其他.NET大牛一起学习如何利用.NET开发跨…

mysql的on和in用法_数据库中in、on、with的用法及示例。

with用法&#xff1a;创建一个表&#xff1a;create table regr (pid integer,id integer, name char(20))alter table regr alter id set not null add primary key(id)insert into regr values(-1,1,library),(1,2,news),(2,3,world news),(2,4,politics),(2,5,bussiness)(2,…

文档数据库RavenDB-介绍与初体验

不知不觉&#xff0c;“.NET平台开源项目速览“系列文章已经15篇了&#xff0c;每一篇都非常受欢迎&#xff0c;可能技术水平不高&#xff0c;但足够入门了。虽然工作很忙&#xff0c;但还是会抽空把自己知道的&#xff0c;已经平时遇到的好的开源项目分享出来。今天就给大家介…

双机热备的原理

转载自 双机热备的原理夜半惊魂 上次的文章《负载均衡的原理》中讲到&#xff0c;张大胖在Bill的指导下&#xff0c;成功地开发了一个四层的负载均衡软件&#xff0c; 把流量“均匀地”分发到了后面的几个服务器中&#xff0c; 获得了老板的1000块钱奖励。但是张大胖心中隐隐不…

c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法

mysql 语句操作&#xff1a;创建数据库&#xff1a;create database hotelATMDb;use hotelATMDb;C#连接mysql1、引用 dll MySql.Data.dll 下载地址&#xff1a;http://download.csdn.net/detail/chen504390172/67461312、引用 using MySql.Data.MySqlClient;连接语句&#xff1…

微软CEO纳德拉开讲,2016微软开发者峰会在京召开

6月1日&#xff0c;2016微软开发者峰会在京召开。 来自微软总部的高层、技术大拿&#xff0c; 以及来自微软亚洲研究院、微软亚太研发集团、Xamarin 总部团队、微软中国开发体验及平台合作事业部的技术专家对各平台的开发进行技术探讨&#xff0c;向开发者展示了一系列引人入胜…

Linux下如何避免误操作执行 rm

转载自 Linux下如何避免误操作执行 rm最近IT圈子流行着一个段子&#xff1a;某个蠢萌的程序员&#xff0c;不小心在公司的服务器上输入了 rm -rf/ 指令&#xff0c;结果......现在还没出狱呢。当然&#xff0c;绝大部分程序员不可能犯下如此低级的错误&#xff0c;更何况也没有…

Consul入门

简介 为什么要用consul&#xff0c;这里就不详细介绍了&#xff0c;本文重点是Consul的搭建和使用过程。 Consul搭建 参考文献&#xff1a;http://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/ 下载consul和consul UI 官方地址&…

Java Socket编程----通信是这样炼成的

转载自 Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的&#xff0c;其对网络提供了高度的支持&#xff0c;使得客户端和服务器的沟通变成了现实&#xff0c;而在网络编程中&#xff0c;使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的…

mysql级联复制转换成一主两从_一主两从转级联复制

一主两从 转 级联复制 示意图如下M ---> S1\ > M ---> S1 ---> S2\ --> S2如果有开启GTID操作起来方便多&#xff0c;GTID是唯一的&#xff0c;直接操作即可。如果使用file_name、position可以使用如下办法(现在还没开启gtid真的是无力吐槽)# 步骤1、# 现将S2的…

细说ASP.NET Core与OWIN的关系

前言 最近这段时间除了工作&#xff0c;所有的时间都是在移植我以前实现的一个Owin框架&#xff0c;相当移植到到Core的话肯定会有很多坑&#xff0c;这个大家都懂&#xff0c;以后几篇文章可能会围绕这个说下&#xff0c;暂时就叫《Dotnet Core踩坑记》吧&#xff0c;呵呵。 接…

mysql 外键和事务_Mysql (五)事务和外键

一、 什么是事务&#xff1a;简单说&#xff0c;所谓事务就是一组操作&#xff0c;这组操作要么都成功执行&#xff0c;要么都不执行。二、 事务的使用流程1. 第一步&#xff1a;开启事务&#xff0c;start transaction&#xff1b;2. 第二步&#xff1a;正常操作SQL语句&#…

微软发布正式版SQL Server 2016

微软于6.2 在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本&#xff08;GA&#xff09;&#xff0c;历时一年多&#xff0c;微软为该软件发布了多个公共预览版和候选版本&#xff0c;而今天最终版本终于上线了。在博客中&#xff0c;微软数据集团的企业副总裁 Josep…

怎样用bootsrapcol-md来实现四分屏_用会议平板提升会议效率,做好这两点

图片&#xff1a;皓丽编辑&#xff1a;好哩据相关科学研究显示&#xff0c;百分之 90% 的会议&#xff0c;完全可以在低于 30 分钟的时间内完成&#xff0c;而人的注意力集中的时间差不多也是在 40-45 分钟&#xff0c;所以提升会议效率&#xff0c;保持会议节奏的连续性和抓住…