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

响应式网站开发基础

时间:2023-04-02 18:40:00 HTML

准备远程调试chrome浏览器设置打开chrome://在chrome浏览器中检查手机设置打开开发者模式打开USB调试模式打开手机chrome浏览器基础窗口(viewport)window指浏览器可以显示的区域内容。设备无关像素值(DIPs)浏览器不针对物理硬件的像素宽度工作,而是根据DIPs宽度工作。DIPs(deviceindependentpixels),与设备无关的像素值。DIP将像素值与实际距离相关联。无论显示器的像素密度如何,相同的DIP值都代表屏幕上相同的空间量。字体改进机制当在屏幕较小的移动设备上显示网页时,浏览器会启用字体改进机制以使内容看起来更好。浏览器将尝试挑选出页面顶部的内容并将它们放大。这意味着有些字体会变大,这样更容易阅读,而另一些字体会保持不变的小,非常难以阅读。Pixelratio(DPR)DPR(设备像素比),设备像素比。DPR=hardwarepixels/DIPs,即设备像素比=物理像素/相对像素。请记住,像素比率是一维数字比率,而不是二维数字比率。各图所代表的DRP计算如下:其中每个蓝色方格代表一个物理像素,橙色方块代表一个相对像素。答:1张图片,一个实际像素代表一个相对像素,DPR=1;2张图片,每行两个实际像素代表一个相对像素,DPR=2;3张图片,三个实际像素代表一个相对像素,DPR=3;4张图片,一个又二分之一实际像素代表一个相对像素,DPR=1.5;使用响应式思维设置窗口在head元素中加入viewport标签可以让浏览器知道我们的意图。我们需要在视口值后面设置页面宽度,以引导页面针对特定设备调整宽度,从而使页面能够匹配不同的屏幕尺寸。初始缩放设置为1,使浏览器相关像素与CSS像素的比例为一比一。如果初始缩放比例不设置为1,一些浏览器在切换到横向模式时仍会保持之前的页面宽度,其内容只是缩放,而不能自动调整布局。element_max_width设置元素的最大宽度以防止溢出。CSSimg,embed,object,video{max-width:100%;}点击目标尺寸我们的手指大约有10mm宽,大致等于40px的CSS像素。所以,按钮至少应该是40*40px,但是与其弄那么大,不如将它设置为48*48px。这样可以确保元素之间有足够的距离,手指较粗的人也可以毫无障碍地使用它。一些点击目标可以做得更小,但要确保任意两个点击目标之间至少有40px的距离,这将防止用户同时点击两个按钮或根本看不到按钮。从小处着手,从最小的屏幕开始设计,我们要仔细权衡对用户来说最重要的信息,用户最想做的事情是什么,或者用户最想看的是什么屏幕上?如果您在最大屏幕上进行设计,一些重要信息可能很容易被删除。而是明确内容的优先级,然后从小到大进行设计,最重要的内容永远留在页面上。无论用户使用何种设备,都可以获得最完整的体验。例如,在销售硬件的商店设计中,优先信息是最近商店的地址、营业时间和联系方式。将这些信息放在页面顶部可以让我更清楚地看到它。除了从小到大的设计,写代码最好是从小到大,这样你就可以知道主要的风格和布局是否兼容任何设备,甚至是不支持媒体查询的古老浏览器。但最好的理由是性能。如果你从最小的设备开始,你必须从一开始就考虑性能。我们需要做出一些有意识的决定来确定内容的优先级以及向用户提供多少信息。构建添加媒体查询链接标签添加@mediatagembed@mediascreenand(min-width:500px){body{背景:蓝色;}}@import标签嵌入@importurl("no.css")仅屏幕和(min-width:500px);/*@importshouldbeavoidedforperformancereasons*/breakpointelasticcommonresponsemode序号模式的选择schema图1mostlyfluidmodel(多数流体)2dropcolumnmodel(列下降)3activelayoutmodel(布局移位器)4canvasoverflowmodel(offcanvas)有时一个网页会同时结合几种模式,比如dropcolumns和canvasoverflowmodels。模式——落柱模型首先要介绍的落柱可能是最简单的。当视口最窄时,每个元素都垂直堆叠,一个接一个。随着视口变宽,元素随之扩展,直到到达第一个不连续点。在第一个不连续处,所有元素不再垂直堆叠,而是前两个元素并排显示,第三个元素在它们下方。这些元素会随着视口继续拉伸,直到到达下一个不连续点。然后,它们被重新排列成三列布局。通常,当视口达到其最大宽度时,列也达到其最大宽度。然后,他们不使用视口进行拉伸,而是在两侧添加边距。代码示例:HTML

CSS.container{显示:flex;flex-wrap:wrap;}.box{width:100%;}/*第一个断点*/@mediascreenand(min-width:450px){.dark_blue{width:25%;}.light_blue{宽度:75%;}}/*第二个断点*/@mediascreenand(min-width:550px){.dark_blue,.green{width:25%;}.light_blue{宽度:50%;}}/*第三个断点*/@mediascreenand(min-width:700px){.container{width:700px;左边距:自动;右边距:自动;}}mode-generalflowmodelgeneralflowmodel和dropcolumnmodel很像,但是更像一个gridsystem,它有更多的columns,columns会根据viewportwidth做出不同的反应。当视口的宽度最窄时,它像落柱模型一样垂直堆叠。但随着视口的扩大,网络模型开始出现。最终,当视口达到其最大宽度时,两边出现边距,内容不再拉伸。代码示例:HTMLCSS。容器{显示:flex;弹性包装:弹性;}。box{width:100%;}/*第一个断点*/@mediascreenand(min-width:450px){.dark_blue,.green{width:50%;}}/*第二个断点*/@mediascreenand(min-width:500px){.dark_blue,.light_blue{width:50%;}.green,.red,.orange{宽度:33.333333%;}}/*第三个断点*/@mediascreenand(min-width:700px){.container{width:700px;左边距:自动;右边距:自动;}}mode-activelayoutmodelactivelayoutmodel应该是最灵活的响应式模型,它对于不同的设备有很多不连续性。但最重要的是它的布局变换方式,并不是简单的重排到其他栏目底部。flexbox的亮点在这里真的很突出,因为我们可以利用css的order属性。代码示例:HTMLCSS。容器{宽度:100%;显示:弹性;flex-wrap:flex;}.box{width:100%;}/*第一个断点*/@mediascreenand(min-width:500px){.dark_blue{width:50%;}#container2{宽度:50%;}}/*第二个断点*/@mediascreenand(min-width:600px){.dark_blue{width:25%;顺序:1;}#container2{宽度:50%;}.red{宽度:25%;顺序:-1;}}mode-canvasoverflowmodel在canvasoverflowmodel中,内容不是垂直堆叠的,而是将导航栏或应用菜单等不常用的内容放在屏幕外。仅在屏幕足够大时显示。在小屏幕上,溢出画布的内容通常会在用户点击菜单按钮时出现。代码示例:HTML......CSShtml,body,main{height:100%;宽度:100%;}导航{宽度:300px;高度:100%;位置:绝对;变换:平移(-300px,0);transition:transform0.3sease;}nav.open{transform:translate(0,0);}/*第一个断点*/@mediascreenand(min-width:600px){nav{position:relative;转换:翻译(0,0);}body{显示:flex;弹性流:行现在换行;}main{宽度:自动;弹性增长:1;}}JavaScriptmenu.addEventListener('click',function(e){drawer.classList.toggle('open');e.stopPropagation();});针对响应更灵敏的图像进行了优化响应表隐藏列当视口尺寸减小时,基本上根据重要性隐藏列。出于我们的目的,选择在较小的屏幕上隐藏某些内容。Nomoretables使用“nomoretables”技术,当窗口的宽度小于某个值时,表格将折叠并重新组织不断增长的列表。与数据表不同,此技术的好处是无论视口大小如何,所有数据都是可见的。在更宽的窗口中时,一切都正常显示。但是当窗口缩小时,表格就塌了,每一列实际上变成了一个单独的行,标题就在旁边。使用媒体查询,需要告诉表格,当视口小于一定宽度时,表格将不再显示为“表格”。在mediaquery中强制所有table,thead,tbody,tr,th,td进行块级显示代码示例:HTML...........................
CSS@media屏幕和(最大宽度:500px){table,thead,tbody,tr,th,td{display:block;}theadtr{/*屏幕阅读器友好*/position:absolute;顶部:-9999px;左:-9999px;}td{位置:相对;左填充:50%;}td:before{位置:绝对;左:6px;内容:属性(数据);字体粗细:粗体;将它放在视口中,最简单的做法是将它放在一个div中,然后将宽度设置为100%,溢出滚动。代码示例:HTML...
Team1st2nd3rd4th5th
CSSdiv.contained_table{宽度:100%;overflow-x:auto;}fontisreading是的,一行文字太少或太多都是不合理的。因此,线的长度是建站时的一个重要参考因素,在选择断点时也经常作为参考。使字体足够大以便在不同设备上阅读很重要。建议使用至少16px的基本字体设置和至少1.2em的行高。根据具体情况,可以在文本较多的网站上添加更多的行高。请记住,正确的字体可以大大改善阅读体验。除了选择主断点外,副断点是布局变化较大的地方。添加辅助断点以实现一些小的更改也很有帮助。例如,调整主要断点之间元素的边距和填充可能会有所帮助。或者给一些内容加上字体大小,这样阅读起来更容易,排版感觉也更自然。嗯,就是这样!