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

拿到UI的时候,前端人应该怎么想?

时间:2023-04-03 00:23:37 HTML

作者:Ishadeed译者:前端小智来源:ishadeed点赞再看,微信搜索【大千世界】,关注B站【前端小智】,此人无背景在大厂工作,但态度积极。本文已收录到GitHubhttps://github.com/qq44924588...,文章已分类,也整理了很多我的文档和教程资料。最近开源了一个Vue组件,但是还不够完善。欢迎大家一起完善,也希望大家能给个star支持一下。谢谢。github地址:https://github.com/qq44924588...双12阿里服务器27元,一般点这里购买,可以找我返现30,相当于27元购买,仅限新用户,可以用家人手机号购买!经常有人私信问小智的设计应该怎么用CSS布局,这个按钮应该怎么画。所以今天在这篇文章中,我们将介绍一些新的布局方式,希望对智米有用。把设计细节放在一边我通常做的第一件事就是把设计细节放在一边。我想知道这个设计的主要部分是什么,然后关注每个部分的细节。考虑以下UI:在上面的UI中,有以下几个特点:HowitworkssectioninthemiddlecontentsectionofthebottomofHeader/Navigation接下来,我们首先抽象这三个主要部分:抽象之后,我们可以看到主要Song可以帮助我们思考如何布局组件,而不必考虑每个组件的细节。我是这样想的:Full-widthheader:header的导航栏CenteredContent:中间的内容水平居中。请注意,这通常需要设置最大宽度max-width。工作原理:这是一个4列布局,整个部分都被限制在一个包装器中。接下来将以上三部分用代码表达:

因为我们有一个4列的部分,这里我使用CSSGrid:.wrapper{margin-left:auto;右边距:自动;左填充:1rem;向右填充:1rem;最大宽度:1140px;}.hero__content{最大宽度:700px;左边距:自动;margin-right:auto;}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);}当我们拿到UI后,并不是马上开始行动,而是观察整体的构成,先实现每一块的构成,再深入进入组成的实现。文章页面在这个例子中,我们有一个文章页面布局。这是UI,其中包括:headerimagearticletitlearticlecontentsidebar(beside)我们再次将其抽象为几个主要部分:抽象主要包括几个部分:网站的header宽度为100%title:包含标题和描述文章的,其内容是左对齐的。要设置最大宽度的两列布局,它包含主要元素和侧边栏元素。文章内容,水平居中并有最大宽度。文章-页面标题这里不需要任何布局方法。一个简单的max-width就足够了,当然,还需要一些padding来增加舒适的距离。.page-header{最大宽度:50rem;padding:2rem1rem;}Article-Main和Sidebarmain元素是视口的整个宽度减去侧边栏的宽度。一般来说,侧边栏应该有一个固定的宽度。为此,使用CSSGrid是完美的。.page-wrapper{显示:网格;grid-template-columns:1fr;}@media(min-width:800px){grid-template-columns:1fr250px;}对于文章的内部内容,应该限制在wrapper中。.inner-content{最大宽度:50rem;左边距:自动;右边距:自动;左填充:1rem;padding-right:1rem;}在整体布局了一番之后,我们来看一下具体的细节。深入了解“工作原理”部分的细节在本文的第一个示例中,让我们看一下“工作原理”部分的详细实现。在此处列出步骤1、2和3。有没有增加或减少的可能?如果是这样,我们应该如何处理呢?我们是否需要列的高度相等,特别是当卡片有很长的文本时?标题我们需要将章节标题放在一边吗?或者在某些情况下它应该是全宽的吗?响应式设计当网页宽度缩小时,我们是否需要响应式?如果是,触发条件是什么?这些是我们在开发中可能会遇到的问题,你怎么看?作为前端开发者,我们更应该考虑这样的边缘情况,而不是只跟猫虎虎一样简单的UI。由于本文侧重于思考过程,因此不可能详细介绍每种可能的情况。在上述模型的第一版和第三版中,步数分别为3和2。我们可以让CSS动态化来处理这个问题吗?能。HTML

它是如何工作的

简单易行的步骤

CSS.steps{显示:网格;网格模板列:1fr;grid-gap:1rem;}@media(min-width:700px){.steps{grid-template-columns:250px1fr;}}.layout{显示:网格;网格模板列:1fr;grid-gap:1rem;}@media(min-width:200px){.layout{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}}我使用了CSSgridminmax()和auto-fit关键字。这在卡片数量可以增加或减少的情况下很有用。内容部分图像应该如何呈现?它是每天更改还是应该从CMS更新?我应该使用HTML还是CSS背景?图像的预期纵横比是多少?我们是否需要根据视口大小使用多种图像大小?有没有可能部分图片会被视频代替?height内容的最小高度是多少?内容长度我们是否需要为标题和描述设置最大长度?如果是这样,设计期望处理的最小值和最大值是多少?元素之间的间距如何处理垂直间距?内容中心如何让内容水平和垂直居中?鉴于我们只知道宽度,高度是未知的。限制内容为了更好的可读性,最好限制内容。理想的宽度是多少?响应式设计我们需要根据视口宽度改变字体大小吗?如果是,我们应该使用基于像素的单位、视口单位还是CSSclamp()函数?根据我们正在做的项目的性质,我们应该找到其中一些问题的答案,这将帮助我们确定组件是如何构建的。有时很难回答每一个问题,但你问的越多,你就越有可能得到良好的无错误结果。在本节中,我将讨论子元素之间的间距。我喜欢使用流空间实用程序。我是从AndyBell的Piccalil博客中学到的。目的是提供直接兄弟元素之间的间距。html

食物很棒

学习如何烹饪美味的饭菜简单易懂的步骤

立即学习css.flow>*+*{margin-top:var(--flow-space,1em);}最后的想法正如我们之前看到的,实现组件的过程不仅要使其与UI完全匹配,还要考虑边缘情况。希望Chimi至少从这篇文章中学到一件事。我是小智,下次见!代码部署后可能存在的bug,无法实时获知。事后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的bug监控工具Fundebug。原文:https://ishadeed.com/article/...每周更新交流文章。可以微信搜索“大千世界”阅读即时更新(比博文早一两篇)。这篇文章在GitHub上https://github.com/qq449245884/xiaozhi已经收录,整理了很多我的文档。欢迎明星和完美。面试可以参考考点。也关注公众号,后台就能看到福利了。你说对了。