先把ul宽高用百分比;
接着把li浮动(不考虑pc端的话,inline-block也行)
li的宽高也百分比
a的宽高也百分比
最后里面的img宽高也百分比
就是一直从ul>li>a一层一层下来,每个子都是百分比尺寸相对父宽高
(我后面代码里还多个包含ul的div,是编辑器生成的模板基础上写的,你可以删掉那个div)
至于图片6个变成13个或57个的问题,总体图片数量不固定,每行数量又根据屏幕大小在变,一行两个图、三个图或更多,肯定有不能整除会落单的图片,那个你没有任何办法处理,只能让最后一行有空位,数学上不能整除,任何程序语言都无能为力的事情
再然后就是媒体查询:
屏幕宽超过你设定的界限时,li的百分比宽度小点,然一行能排三个或更多
屏幕宽小于你设定的界限时,把li百分比宽度设置到40-50%左右,一行只摆两个
1
|
< div class = "wrapper" >
|
1
2
3
4
5
6
7
8
|
< ul id = "lists" >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
< li >< a href = "####" >< img src = "1.jpg" alt = "" /></ a ></ li >
</ ul >
|
1
|
</ div >
|
1
2
3
4
|
body { margin : 0 ;
padding : 0 ;
} |
1
2
3
|
@media screen and ( min-width : 1px ) and ( max-width : 319px ) {
/*小于320x480的老式手机设备一般不用管了吧,上面有webkit内核浏览器的太少了,有ie9-10的基本上不存在*/ } |
1
|
@media screen and ( min-width : 320px ) and ( max-width : 480px ) {
|
1
2
3
4
5
6
7
8
9
|
.wrapper
{
width : 100% ;
height : 100% ;
margin : 0 auto ;
text-align : left ;
border : 1px red solid ;
background : #4A2C40 ;
}
|
1
2
3
4
5
|
#lists{
width : 100% ;
height : 100% ;
border : 1px green solid ;
}
|
1
2
3
4
5
6
7
8
9
|
#lists li{
display : inline- block ;
width : 40% ;
height : 30% ;
margin : 2% ;
border : 1px #fff solid ;
position : relative ;
left : 10% ;
}
|
1
2
3
4
|
#lists li img{
width : 100% ;
height : 100% ;
}
|
1
2
3
4
5
6
|
#lists li a{
width : 100% ;
height : 100% ;
display : block ;
border : 1px red solid ;
}
|
1
|
} |
1
|
@media only screen and ( min-width : 321px ) and ( max-width : 1024px ) {
|
1
2
3
4
5
6
7
8
9
|
.wrapper
{
width : 100% ;
height : 100% ;
margin : 0 auto ;
text-align : left ;
border : 1px red solid ;
background : #333 ;
}
|
1
2
3
4
5
|
#lists{
width : 100% ;
height : 100% ;
border : 1px green solid ;
}
|
1
2
3
4
5
6
7
8
9
|
#lists li{
display : inline- block ;
width : 40% ;
height : 30% ;
margin : 2% ;
border : 1px #fff solid ;
position : relative ;
left : 4.7% ;
}
|
1
2
3
4
|
#lists li img{
width : 100% ;
height : 100% ;
}
|
1
2
3
4
5
6
|
#lists li a{
width : 100% ;
height : 100% ;
display : block ;
border : 1px red solid ;
}
|
1
|
} |
1
|
|
1
|
@media only screen and ( min-width : 1029px ){
|
1
2
3
4
5
6
7
8
9
|
.wrapper
{
width : 100% ;
height : 100% ;
margin : 0 auto ;
text-align : left ;
border : 1px red solid ;
background : #14334D ;
}
|
1
2
3
4
5
|
#lists{
width : 100% ;
height : 100% ;
border : 1px green solid ;
}
|
1
2
3
4
5
6
7
8
9
|
#lists li{
display : inline- block ;
width : 25% ;
height : 30% ;
margin : 2% ;
border : 1px #fff solid ;
position : relative ;
left : 5.4% ;
}
|
1
2
3
4
|
#lists li img{
width : 100% ;
height : 100% ;
}
|
1
2
3
4
5
6
|
#lists li a{
width : 100% ;
height : 100% ;
display : block ;
border : 1px red solid ;
}
|
1
|
} |
另外:
1.li 的相对定位是为了让所有图片横向看上去相对居中(没办法绝对精确),要绝对,参考:Z处
2.代码里面很多玩意100%了,再加1px边框理论上是不对的,只是写的时候方便看元素大小,要算尺寸应该-1px再算百分比
3.实际上我是在firefox上直接拉窗口大小测试的,实现了图片随屏幕大小缩放,窗口小于一定尺寸时一行三个图变切换为一行两个;但是大半夜了我也不敢去卧室翻平板和手机出来试,真机环境上估计可能上面的代码可能还得改改才能跑。而且估计webkit和ie9-10环境下估计细节还有错误需要兼容处理..
...
相关推荐
在网页设计中,导航栏是页面布局的重要...总之,通过`div+css+ul-li`,我们可以轻松地创建出具有专业外观的横向导航栏。随着技术的发展,可以进一步探索更高级的布局技巧和动态效果,以满足不断进化的网页设计需求。
可以使用HTML的`<nav>`、`<ul>`、`<li>`等元素来结构化菜单,然后用CSS定义样式,如背景色、字体、边距、边框和悬停效果。浮动元素(`float: left;`)或使用Flexbox (`display: flex;`)和Grid (`display: grid;`)布局...
css 横向导航菜单是指在网页中使用 CSS 语言来实现的横向导航菜单样式,该样式可以使网页导航菜单更加美观、易用。该样式主要通过使用 CSS 语言来设置菜单的样式,包括菜单的背景颜色、文字颜色、边框样式等。 在该...
8. **Flexbox布局**:现代浏览器广泛支持Flexbox,这是一种更灵活的布局模式,可以轻松实现水平或垂直居中,以及在不同屏幕尺寸下的自适应布局。 9. **Grid布局**:尽管在导航菜单设计中不常用,但Grid布局在复杂的...
- **已知容器的大小而未知内容大小的水平和垂直居中问题**:通过`flexbox`或`grid`布局实现。 - **容器的大小和内容大小均未知的水平和垂直居中**:使用`flex`属性。 - **修饰图片的水平和垂直居中**:通过`display`...
在菜单布局中,常用于实现横向排列的菜单项。 3. 定位:绝对定位(absolute)和相对定位(relative)可以让元素相对于其父元素或文档的固定位置来定位。在菜单设计中,可以使用定位来确保下拉子菜单准确地在主菜...
本例中的微软风格的CSS横向菜单通过简洁的代码实现了美观且实用的功能。开发者可以根据实际需求调整样式和结构,例如更改颜色方案、增加更多的菜单项等。此外,还可以进一步优化用户体验,如添加过渡动画效果、响应...
在创建横向导航栏时,CSS可以用来定义导航栏的布局、颜色、字体、背景、边框等视觉元素。以下是一些关键的CSS属性: 1. **display**:设置为`flex`或`inline-block`可以实现元素的水平排列。 2. **justify-content*...
在这个“DIV+CSS网页布局初级入门系列教程-4”中,我们主要关注的是如何创建横向导航菜单,这是一个网页设计中的常见元素,对于提升用户体验至关重要。 首先,我们要理解HTML列表`<ul>`和`<li>`的作用。`<ul>`是...
在实际应用中,要实现网页元素的布局,尤其是水平排列的元素居中对齐,需要熟悉CSS的定位技术。包括绝对定位、相对定位、浮动等属性的理解与应用。通过本例展示的相对定位技巧,我们能够更加灵活地控制页面中的元素...
本实例关注的是如何使用CSS实现图片的横向排列,这在创建诸如产品展示、图像画廊等网页布局时非常常见。下面我们将详细探讨这个布局实例及其关键知识点。 首先,为了确保兼容性和规范化,我们设置了全局的CSS重置,...
为了实现横向布局,我们可以设置`<ul>`元素的`display`属性为`flex`,并调整`justify-content`以居中或左对齐链接: ```css .horizontal-menu { display: flex; list-style-type: none; /* 去除默认的列表样式 */...
- 为了实现横向展示,可以使用`<ul>`无序列表和`<li>`列表项来组织链接,确保每个链接在一个独立的行内。 ```html <ul class="navbar"> <li>首页</a></li> <li>关于我们</a></li> <li>服务</a></li> <li>...
- 使用CSS3的`display: flex`或`display: grid`布局,可以更灵活地控制`<ul>`和`<li>`的布局,比如实现响应式设计。 8. **交互效果**: - 在导航菜单中,通常会给`<li>`内的链接添加`:hover`伪类,以实现鼠标悬停...
在网页设计中,导航条是页面布局的重要组成部分,它帮助用户快速浏览网站的...在提供的压缩包“CSS横向导航条-3”中,可能包含了实现这种导航条的示例代码,进一步学习和研究这些代码将有助于深化理解和应用这些概念。
Flexbox可以轻松实现水平居中、弹性伸缩等布局效果,确保菜单在不同屏幕尺寸上都能保持良好展示。而Grid布局则更适合构建复杂的网格系统,如果导航包含多级子菜单,Grid能帮助开发者轻松地进行多列布局。 此外,...
CSS网页布局入门教程9:用CSS设计网站导航——横向导航 本教程为CSS网页布局入门教程的第九篇,主要讲解如何使用CSS设计网站导航,特别是横向导航。网站导航是网站中最重要的元素,是网站提供给用户的最直接最方便...
在CSS布局中,将多张图片横向居中显示是一个常见的需求,尤其在设计网页或创建响应式布局时。本文将详细介绍一种亲测有效的方法来实现这一目标,适用于各种浏览器环境。 首先,我们需要创建一个包含多张图片的HTML...
- 主菜单项通过`.nav ul li`设置宽度、高度、边框等样式,并使其浮动以实现横向排列。 - 二级菜单项通过`:hover`伪类在鼠标悬停时显示。 #### 五、总结 通过以上步骤,您可以成功地使用HTML和CSS创建一个二级...
这样可以确保元素即使在IE6下也能实现正确的居中布局。 ```css #container { text-align: center; } #element { margin: 30px auto; text-align: left; } ``` #### 2. 楼梯式效果 使用列表(`<ul>`)创建导航...