`
445850053
  • 浏览: 13545 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

ul中的li布局CSS布局,横向垂直都要居中实现

    博客分类:
  • html
阅读更多



 

 先把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 {
 margin0;
 padding0;
}
1
2
3
@media screen and (min-width1px) and (max-width319px) {
/*小于320x480的老式手机设备一般不用管了吧,上面有webkit内核浏览器的太少了,有ie9-10的基本上不存在*/
}
1
@media screen and (min-width320px) and (max-width480px) {
1
2
3
4
5
6
7
8
9
 .wrapper
 {
  width100%;
  height100%;
  margin0 auto;
  text-alignleft;
  border1px red solid;
  background#4A2C40;
 }
1
2
3
4
5
 #lists{
  width100%;
  height100%;
  border1px green solid;
 }
1
2
3
4
5
6
7
8
9
 #lists li{
  display: inline-block;
  width40%;
  height30%;
  margin2%;
  border1px #fff solid;
  positionrelative;
  left10%;
 }
1
2
3
4
 #lists li img{
  width100%;
  height100%;
 }
1
2
3
4
5
6
 #lists li a{
  width100%;
  height100%;
  displayblock;
  border1px red solid;
 }
1
}
1
@media only screen and (min-width321px) and (max-width1024px) {
1
2
3
4
5
6
7
8
9
 .wrapper
 {
  width100%;
  height100%;
  margin0 auto;
  text-alignleft;
  border1px red solid;
  background#333;
 }
1
2
3
4
5
 #lists{
  width100%;
  height100%;
  border1px green solid;
 }
1
2
3
4
5
6
7
8
9
 #lists li{
  display: inline-block;
  width40%;
  height30%;
  margin2%;
  border1px #fff solid;
  positionrelative;
  left4.7%;
 }
1
2
3
4
 #lists li img{
  width100%;
  height100%;
 }
1
2
3
4
5
6
 #lists li a{
  width100%;
  height100%;
  displayblock;
  border1px red solid;
 }
1
}
1
  
1
@media only screen and (min-width1029px){
1
2
3
4
5
6
7
8
9
 .wrapper
 {
  width100%;
  height100%;
  margin0 auto;
  text-alignleft;
  border1px red solid;
  background#14334D;
 }
1
2
3
4
5
 #lists{
  width100%;
  height100%;
  border1px green solid;
 }
1
2
3
4
5
6
7
8
9
 #lists li{
  display: inline-block;
  width25%;
  height30%;
  margin2%;
  border1px #fff solid;
  positionrelative;
  left5.4%;
 }
1
2
3
4
 #lists li img{
  width100%;
  height100%;
 }
1
2
3
4
5
6
 #lists li a{
  width100%;
  height100%;
  displayblock;
  border1px red solid;
 }
1
}

 

另外:

1.li 的相对定位是为了让所有图片横向看上去相对居中(没办法绝对精确),要绝对,参考:Z处

2.代码里面很多玩意100%了,再加1px边框理论上是不对的,只是写的时候方便看元素大小,要算尺寸应该-1px再算百分比

3.实际上我是在firefox上直接拉窗口大小测试的,实现了图片随屏幕大小缩放,窗口小于一定尺寸时一行三个图变切换为一行两个;但是大半夜了我也不敢去卧室翻平板和手机出来试,真机环境上估计可能上面的代码可能还得改改才能跑。而且估计webkit和ie9-10环境下估计细节还有错误需要兼容处理..

...

  • 大小: 26.8 KB
分享到:
评论

相关推荐

    div+css+ul-li制作横向导航栏

    在网页设计中,导航栏是页面布局的重要...总之,通过`div+css+ul-li`,我们可以轻松地创建出具有专业外观的横向导航栏。随着技术的发展,可以进一步探索更高级的布局技巧和动态效果,以满足不断进化的网页设计需求。

    css布局样例源代码

    可以使用HTML的`&lt;nav&gt;`、`&lt;ul&gt;`、`&lt;li&gt;`等元素来结构化菜单,然后用CSS定义样式,如背景色、字体、边距、边框和悬停效果。浮动元素(`float: left;`)或使用Flexbox (`display: flex;`)和Grid (`display: grid;`)布局...

    css横向导航菜单样式

    css 横向导航菜单是指在网页中使用 CSS 语言来实现的横向导航菜单样式,该样式可以使网页导航菜单更加美观、易用。该样式主要通过使用 CSS 语言来设置菜单的样式,包括菜单的背景颜色、文字颜色、边框样式等。 在该...

    音乐横向css导航菜单

    8. **Flexbox布局**:现代浏览器广泛支持Flexbox,这是一种更灵活的布局模式,可以轻松实现水平或垂直居中,以及在不同屏幕尺寸下的自适应布局。 9. **Grid布局**:尽管在导航菜单设计中不常用,但Grid布局在复杂的...

    div+css有实例,易学易懂

    - **已知容器的大小而未知内容大小的水平和垂直居中问题**:通过`flexbox`或`grid`布局实现。 - **容器的大小和内容大小均未知的水平和垂直居中**:使用`flex`属性。 - **修饰图片的水平和垂直居中**:通过`display`...

    CSS + DIV 布局控制 菜单

    在菜单布局中,常用于实现横向排列的菜单项。 3. 定位:绝对定位(absolute)和相对定位(relative)可以让元素相对于其父元素或文档的固定位置来定位。在菜单设计中,可以使用定位来确保下拉子菜单准确地在主菜...

    微软风格的CSS横向菜单

    本例中的微软风格的CSS横向菜单通过简洁的代码实现了美观且实用的功能。开发者可以根据实际需求调整样式和结构,例如更改颜色方案、增加更多的菜单项等。此外,还可以进一步优化用户体验,如添加过渡动画效果、响应...

    js+css经典横向导航栏

    在创建横向导航栏时,CSS可以用来定义导航栏的布局、颜色、字体、背景、边框等视觉元素。以下是一些关键的CSS属性: 1. **display**:设置为`flex`或`inline-block`可以实现元素的水平排列。 2. **justify-content*...

    DIV+CSS网页布局初级入门系列教程-4.pdf

    在这个“DIV+CSS网页布局初级入门系列教程-4”中,我们主要关注的是如何创建横向导航菜单,这是一个网页设计中的常见元素,对于提升用户体验至关重要。 首先,我们要理解HTML列表`&lt;ul&gt;`和`&lt;li&gt;`的作用。`&lt;ul&gt;`是...

    UL里的LI元素左浮动层一行显示时使其居中的方法

    在实际应用中,要实现网页元素的布局,尤其是水平排列的元素居中对齐,需要熟悉CSS的定位技术。包括绝对定位、相对定位、浮动等属性的理解与应用。通过本例展示的相对定位技巧,我们能够更加灵活地控制页面中的元素...

    CSS 图片横向排列实现代码

    本实例关注的是如何使用CSS实现图片的横向排列,这在创建诸如产品展示、图像画廊等网页布局时非常常见。下面我们将详细探讨这个布局实例及其关键知识点。 首先,为了确保兼容性和规范化,我们设置了全局的CSS重置,...

    HTML横向导航菜单

    为了实现横向布局,我们可以设置`&lt;ul&gt;`元素的`display`属性为`flex`,并调整`justify-content`以居中或左对齐链接: ```css .horizontal-menu { display: flex; list-style-type: none; /* 去除默认的列表样式 */...

    简约型横向css导航条

    - 为了实现横向展示,可以使用`&lt;ul&gt;`无序列表和`&lt;li&gt;`列表项来组织链接,确保每个链接在一个独立的行内。 ```html &lt;ul class="navbar"&gt; &lt;li&gt;首页&lt;/a&gt;&lt;/li&gt; &lt;li&gt;关于我们&lt;/a&gt;&lt;/li&gt; &lt;li&gt;服务&lt;/a&gt;&lt;/li&gt; &lt;li&gt;...

    ul和li 基本用法分析

    - 使用CSS3的`display: flex`或`display: grid`布局,可以更灵活地控制`&lt;ul&gt;`和`&lt;li&gt;`的布局,比如实现响应式设计。 8. **交互效果**: - 在导航菜单中,通常会给`&lt;li&gt;`内的链接添加`:hover`伪类,以实现鼠标悬停...

    CSS横向导航条-3

    在网页设计中,导航条是页面布局的重要组成部分,它帮助用户快速浏览网站的...在提供的压缩包“CSS横向导航条-3”中,可能包含了实现这种导航条的示例代码,进一步学习和研究这些代码将有助于深化理解和应用这些概念。

    简洁的html5+css3导航菜单插件

    Flexbox可以轻松实现水平居中、弹性伸缩等布局效果,确保菜单在不同屏幕尺寸上都能保持良好展示。而Grid布局则更适合构建复杂的网格系统,如果导航包含多级子菜单,Grid能帮助开发者轻松地进行多列布局。 此外,...

    CSS网页布局入门教程9:用CSS设计网站导航——横向导航

    CSS网页布局入门教程9:用CSS设计网站导航——横向导航 本教程为CSS网页布局入门教程的第九篇,主要讲解如何使用CSS设计网站导航,特别是横向导航。网站导航是网站中最重要的元素,是网站提供给用户的最直接最方便...

    css设置多张图片横向居中显示方法(亲测有效)

    在CSS布局中,将多张图片横向居中显示是一个常见的需求,尤其在设计网页或创建响应式布局时。本文将详细介绍一种亲测有效的方法来实现这一目标,适用于各种浏览器环境。 首先,我们需要创建一个包含多张图片的HTML...

    html+css二级导航栏的创建

    - 主菜单项通过`.nav ul li`设置宽度、高度、边框等样式,并使其浮动以实现横向排列。 - 二级菜单项通过`:hover`伪类在鼠标悬停时显示。 #### 五、总结 通过以上步骤,您可以成功地使用HTML和CSS创建一个二级...

    最常见的9种IE_css_bug及fix

    这样可以确保元素即使在IE6下也能实现正确的居中布局。 ```css #container { text-align: center; } #element { margin: 30px auto; text-align: left; } ``` #### 2. 楼梯式效果 使用列表(`&lt;ul&gt;`)创建导航...

Global site tag (gtag.js) - Google Analytics