今天在工作中遇到了一个问题:有三个div块,里面放置展示内容,并排,中间有间隙,两边顶头,可以随屏幕大小自适应宽度。
我第一时间想到的是传统的三列布局,但传统的三列布局都是固定宽度加自适应宽度,从网上搜了好久都没有搜到结果。所以自己想办法。
第一种想到的办法:
第一种我准备用两边float,中间margin居中的方法。代码如下:
css:
.wrap{height:300px;width:95%;margin: 100px auto;} .left{float:left;width:32%;height:100px;background-color: #235255} .right{float:right;width:32%;height:100px;background-color: #374737} .middle{width:32%;margin:0 auto;height:100px;background-color: #563958}
html:
<div class="wrap"> <div class="left"></div> <div class="middle"></div> <div class="right"></div> </div>
结果变成了这样:
查了一下,解决办法是把right提到最前面。试了一下,成功了。
html: <div class="wrap"> <div class="right"></div> <div class="left"></div> <div class="middle"></div> </div>
不过思考一下,这个问题有很多的不方便。首先就是可能会打乱html的加载顺序,还有就是间距是不固定的,并且加了float,可能会有副作用。
之后我就考虑第二种方案。问了下同事,提到了可以用inline-block代替float的方法。这给了我很大的启发。回来我就试了一下。
第二种想到的办法
这种方法将这三个块都设置成display:inline-block,利用inline元素的特性将其居于一行,再将其box-sizing属性设置成border-box。
这种方法,好处有几点:
1.不会有float的副作用存在
2.不管是三列还是三十列,来就行
代码如下:
css:
.g-bd{width: 95%;height: 300px;padding-top:20px;background-color: #bbbbbb;margin: 0 auto;} .in-bl{display: inline-block;} .f{width: 33.333%;height: 100px;background-color: #ab1256;} .s{width: 33.333%;height: 100px;} .t{width: 33.333%;height: 100px;background-color:#192873;}
html:
<div class="g-bd"> <div class="f in-bl"> </div> <div class="s in-bl"> </div> <div class="t in-bl"> </div> </div>
结果与预想的不太相同。预想中他们之间没有空隙,充满容器,不会换行。结果他们义无反顾地换行了,之间有了一个本不该存在的空隙。
原因也很简单,作为一个带有inline的元素之间换行是会被识别为空格的(哭)。
原理找到了,这里有详细的解释,鑫旭大神就是厉害:张鑫旭对于inline-block的理解。这里是个demo,就用最简单的方法去除空格就好了。
接下来还有个问题:无法通过margin/padding来给他们之间设置间隔。这里想了一个办法:在每个盒子里面嵌套一个盒子,背景设置给里面的,宽度设置比100%小一点,通过margin:auto进行调整位置,这样就有一个可以调整的间隙了~
代码如下:
css:
.g-bd{width: 95%;height: 300px;padding-top:20px;background-color: #bbbbbb;margin: 0 auto;}.in-bl{display: inline-block;}.f{width: 33.333%;height: 100px;background-color: #ab1256;}.s{width: 33.333%;height: 100px;}.t{width: 33.333%;height: 100px;background-color:#192873;}.in{margin:0 auto;px;width: 95%;background-color:#958727;height: 100%}
html:
<div class="g-bd"><div class="f in-bl"> </div><div class="s in-bl"><!--这里把结束标签与下一个标签合并了,正式工作时会给后端工程师添麻烦,不建议使用--> <div class="in"> </div></div><div class="t in-bl"> </div></div>
效果:
大功告成。这样的方法会增加一个嵌套,要设置border-box,也算是有些副作用了。到工作时再根据需要进行取舍吧。

Setting the lang attributes of a tag is a key step in optimizing web accessibility and SEO. 1) Set the lang attribute in the tag, such as. 2) In multilingual content, set lang attributes for different language parts, such as. 3) Use language codes that comply with ISO639-1 standards, such as "en", "fr", "zh", etc. Correctly setting the lang attribute can improve the accessibility of web pages and search engine rankings.

HTMLattributesareessentialforenhancingwebelements'functionalityandappearance.Theyaddinformationtodefinebehavior,appearance,andinteraction,makingwebsitesinteractive,responsive,andvisuallyappealing.Attributeslikesrc,href,class,type,anddisabledtransform

TocreatealistinHTML,useforunorderedlistsandfororderedlists:1)Forunorderedlists,wrapitemsinanduseforeachitem,renderingasabulletedlist.2)Fororderedlists,useandfornumberedlists,customizablewiththetypeattributefordifferentnumberingstyles.

HTML is used to build websites with clear structure. 1) Use tags such as, and define the website structure. 2) Examples show the structure of blogs and e-commerce websites. 3) Avoid common mistakes such as incorrect label nesting. 4) Optimize performance by reducing HTTP requests and using semantic tags.

ToinsertanimageintoanHTMLpage,usethetagwithsrcandaltattributes.1)UsealttextforaccessibilityandSEO.2)Implementsrcsetforresponsiveimages.3)Applylazyloadingwithloading="lazy"tooptimizeperformance.4)OptimizeimagesusingtoolslikeImageOptimtoreduc

The core purpose of HTML is to enable the browser to understand and display web content. 1. HTML defines the web page structure and content through tags, such as, to, etc. 2. HTML5 enhances multimedia support and introduces and tags. 3.HTML provides form elements to support user interaction. 4. Optimizing HTML code can improve web page performance, such as reducing HTTP requests and compressing HTML.

HTMLtagsareessentialforwebdevelopmentastheystructureandenhancewebpages.1)Theydefinelayout,semantics,andinteractivity.2)SemantictagsimproveaccessibilityandSEO.3)Properuseoftagscanoptimizeperformanceandensurecross-browsercompatibility.

A consistent HTML encoding style is important because it improves the readability, maintainability and efficiency of the code. 1) Use lowercase tags and attributes, 2) Keep consistent indentation, 3) Select and stick to single or double quotes, 4) Avoid mixing different styles in projects, 5) Use automation tools such as Prettier or ESLint to ensure consistency in styles.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools
