当前位置: 首页 > Web前端 > HTML

如何使用Bootstrap构建更合理的HTML结构

时间:2023-04-02 14:09:06 HTML

前言Bootstrap的成功不仅在于它的简洁易用,还在于它风格的标准化和HTML结构的合理性。然而,很多人在使用Bootstrap时,只是一味的照着文档复制粘贴,没有仔细考虑每个类的用处,也没有考虑HTML结构是否合理。在平时的工作中,我一直和同事强调,一定要挖掘框架的本质,尽可能使用框架本身的类来实现布局。几乎所有的UI布局都可以使用框架本身完成,而无需编写额外的冗余。风格。本文旨在介绍如何使用Bootstrap构建常用的布局,并保证布局具有合理的HTML结构。无论是传统开发还是使用框架,构建布局的思路都不会改变。本文所有案例均以Bootstrap3为例。Bootstrap4变化很大,但基本适用。读者需仔细比较,切勿盲目抄袭。合理使用网格保证合理嵌套Bootstrap网格类的随意嵌套是造成HTML结构混乱的主要原因。虽然Bootstrapgrid类在随机嵌套时不会造成严重的问题,但是会造成潜在的问题。细节把控到不行。例如下面常见的错误嵌套:.col-md-8

.col-md-4
.col-md-6
从表面上看,没什么大问题,但如果你抚摸一下格子,你就会看到不同。请参阅下面的CodePen:请参阅PenBootstrap-demo我们必须了解每个Bootstrap网格类的作用。其中.row和.col-*是必须要一起使用的,两者缺一不可,因为.row是为了抵消.col-*的负margin值,所以不是可有可无的一类。因此,上述示例的正确结构如下:。col-md-8.col-md-4.col-md-6这是我在工作中看到的最常见的错误,必须特别注意。网格偏移的灵活使用网格的列偏移.col-{breakpoint}-offset-*也应该算是一个比较常用的布局类,但是我们在大型布局的布局中往往会忽略它的作用。例如右侧有一个登录框的登录页面:右侧窗体的布局有很多种实现方式,比如单独使用float实现偏移,或者使用绝对/相对定位。但是更好的方法应该是使用网格的列偏移实现,因为网格支持响应式布局。下面是一个响应式落地页的例子:查看PenBootstrap-demo建议在CodePen中打开查看效果,因为我的博客内容区域比较窄,所以只能看到响应式布局的小屏幕断点。网格布局虽然很好,但是在工作中还是要慎用,因为很多不懂前端的设计师或者产品会找前端人员的毛病,只能根据自己的喜好做一些调整具体要求。水平表格排列形式中的水平网格布局很常见,Bootstrap官网也给出了案例,但是对于多列水平表格布局,会稍微复杂一点,过多的网格嵌套会让人抓狂.但是只要记住一件事,布局就绰绰有余了。通过添加.form-horizo??ntal类,可以水平排列表单。这时候.form-group类相当于.row类。两者的行为是一样的,所以此时不??需要添加.row类。电子邮件...注意在在Bootstrap4中,.row类不能省略,需要写成.form-grouprow。其实并没有什么区别,都是为了形成.row>.col-*>.row>.col-*的结构。
电子邮件...下面是Bootstrap3横向formlayoutExample:见PenBootstrap-demo上面的例子比官网多了一层网格,只能在大屏上才能看到效果。在不熟悉Bootstrap的情况下,嵌套在这个网格中的表单很容易写起来很乱,但是只要记住上面提到的规则,就可以轻松编写。静态形式排列很多人看到上面的结构,二话不说就写了一个ul>li这样的布局,加上.list.item等无意义的类。还是开头提到的,我们要始终坚持一个原则,尽量不要随意添加样式,而是探索框架本身有的类,几乎都能找到解决方案。如果您考虑一下,上面示例中的布局只不过是网格中的内联表单。所以实现方法很简单,不需要自己写样式。下面是实时demo,建议大屏查看效果:见PenBootstrap-demo表结构表就不多说了,推荐使用响应式表结构,即添加.table-responsive元素。因为在实际工作中,表格的列数一般都比较多,响应式表格应该是一个比较通用的方案。...先排列,后排序这个规则只是一个建议,因为HTML块级元素占一行默认情况下,先排序可以减少HTML的结构,使结构更简洁。另一方面,对于高度不同的元素,即使有很小的间隙,布局也会错位,见下面的CodePen:见PenBootstrap-demo要解决这个问题,必须在每一行中添加.row。但在某些时候,我们必须这样写。............……如果你先安排好,就不用担心上面的问题了。这种安排有点像瀑布。............这个建议需要根据实际需要进行调整,需要和设计师和产品好好沟通,否则肯定会面临返工的危险。只能说从结构上来说还是先排好。如果使用Flex布局,就可以很好的解决这个问题。综上所述,让我说点题外话。我一直觉得优秀的网页作品不是或者不都是设计师决定的,更不应该是设计师决定的,因为国内真正懂前端的设计师还是少数,设计风格很难跟上潮流。设计师和产品经常谈交互,但是他们提出的很多交互形式被我们前端人员认为是网页必不可少的元素,并不是亮点。反观国外,设计师是懂前端的,甚至是精通的。前端开发人员也是设计师或交互设计师。每个人都是复合型人才,值得学习。言归正传,本文主要介绍在使用Bootstrap时如何搭建一个更合理的结构。但是在实际工作中,无论是否使用框架,我们都应该尽可能地简化和规范HTML结构。这是前端开发者应该养成的良好习惯。习惯。另外,由于框架是对很多问题的抽象,在通用性的前提下难免会有一些冗余的HTML结构。我一开始就强调了尽量不要写多余的样式,但是如果实在不能满足布局要求,还是先用helper来解决吧。Bootstrap3的helpers并不丰富,Bootstrap4增加了很多helper辅助类。之前也写过一篇关于帮手《如何编写通用的 Helper Class》的文章,有兴趣的可以看看。