主要内容宽度固定的自适应头部

最近在做百度IFE2015的task,task中给出了一个要求:用纯CSS页面实际内容宽度为980px,头部背景、大图、底部背景均为100%宽,当浏览器宽度低于980px时,页面宽度不变,允许出现横向滚动条。右上角的Github图标在浏览器低于980px时消失。于是作为一个初学者,大周我经过几天的实践,终于得到了想要的效果。

首先,要想实现页面主要内容居中有两种方案,利用margin和绝对定位。我习惯第一种方案,所以飞快地写了一个,效果如下:

html代码如下:

    <div class="header-bg">
   <div class="header">
       <div id="h-menubar">
       <ul class="menu">
       <li>首页</li>
    <li>文章</li>
    <li>作品</li>
    <li>关于</li>
   </ul>
   </div>
   </div>
</div>

  

css:

.header-bg {
width:100%;
height:80px;

}
.header {
width:980px;
height:80px;
margin:0 auto;
position:relative;
border:1px solid black;
}
#h-menubar {
position:absolute;
right:0;
bottom:5px;
}

  

为了看得清楚给主要内容加了个边框。

接下来就是github图标了。要想把一张图片显示在一个div的右下方大概有:1.把图片作为该div的background-image;2.由于图片是行内元素,可以利用text-align;3.将图片的display设成block,并利用绝对定位或浮动。

由于点击该图片可以链接到github首页,我把图片放在了链接里,所以排除方案1。而我的header是块级元素,所以我最终选择了方案3。

html:

<a href="https://github.com/" target="_Blank">
<img src="images/icon-github.png" alt="github链接">
</a>

  

css:

.header-bg a {
display:block;
float:right;
margin:-37px 10px 0 0;
}

  

接着我试着缩小浏览器窗口,结果如下:

因为我中间div背景是透明的,猫并没有消失,那设置下div的背景呢?

额,要求是达到了,可是这样不好看啊。于是我想给猫设置一个左margin,但是它对右浮动和绝对定位是无效的。所以我决定用方案2使猫位于header右下角,并且利用绝对定位使主要内容居中。最终效果如下:

css:

.header-bg {
width:100%;
height:34px;

text-align:right;
padding-top:46px;
}
.header {
width:980px;
height:80px;
margin-left:-490px;
position:absolute;
left:50%;
top:0;
}

.header-bg a {
margin:0 10px 0 1010px;
text-decoration:none;
}

  

链接的左margin为主内容宽度980px+猫宽度30px,这样当浏览器缩小到猫的左边界触碰到主内容的右边界时,猫会从右边开始消失。

时间: 2024-10-27 02:59:02

主要内容宽度固定的自适应头部的相关文章

左边宽度固定右边自适应

在写页面布局的时候经常要用到左边宽度固定右边自适应 第一种写法: .left { position: absolute; height: 100%; width: 300px; background-color: blue; } .right { height: 100%; margin-left: 300px; background-color: red; } 这种写法有个问题,right的宽度是占满整个屏幕,如果right想实现拖拽功能,发现拖拽到左边300像素的时候,不能在往往左边拖拽了,

css布局1:左右宽度固定中间自适应html布局解决方案(同一侧宽度固定,另一侧自适应)

https://www.jb51.net/web/639884.html 本文介绍了详解左右宽度固定中间自适应html布局解决方案,分享给大家,具体如下: a.使用浮动布局 html结构如下(为什么中间的网格宽度显示的和实际的不一样?怎么造成的;解决方法就是让中间的非浮动元素可以看到两边的浮动元素,例如为.center加overflow:hidden) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <div class="box&quo

CSS如何实现”右部宽度固定,左部自适应“的布局

吃过晚饭后,开始刷前端笔试题,却遇到了一道CSS难题——使用CSS实现左部自适应.右部固定宽度为200px的布局.当时第一眼看到题目时,以为只是一道很简单的题目.不就是定义两个左浮动的div,右部的宽度固定为200px,左部的宽度为100%,但是真的是那么简单吗?我当时信心十足的以为真的就是这么简单的!看来,自信真的是来源于无知啊!于是马上切换到sublime开始编码了.当时,写好的第一个版本大概如下: <!DOCTYPE html> <html lang="en"&

左右两栏宽度自适应,中间一栏宽度固定

左右两栏宽度自适应,中间一栏宽度固定:中间一栏宽度固定,左右两栏宽度自适应效果在众多网页中都有应用,有不错的使用效果,下面就简单介绍一下如何此效果:代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <

一列div宽度固定、一列div宽度自适应

一列固定.一列宽度自适应:建议:尽可能的手写代码,可以有效的提高学习效率和深度.之前的代码中,已经介绍过一列宽度自适应和二列宽度自适应,实现自适应的效果一般就是将相应对象的宽度以百分比的形式表示.在实际的布局中,一列宽度固定.一列宽度自适应.下面我们就以左侧div宽度固定,右侧div宽度是自适应为例.代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta n

解决左边固定右边自适应宽度的方案

上一篇文章中有提及过很多web前端开发者用float+margin+position:absolute来实现表单内容的左边文字固定右边的输入框自适应宽度的问题,当然,这个问题我也在百度中搜索过,基本搜索出来的答案都是这样描述的,我也在上一篇文章中提出过浮动和绝对定位属于脱离文档流布局,是会损耗性能的,但是百度中却没有给出我所想表达出的解决方案,所以不得不在此将该方案具体的描述清楚. 首先,我需要介绍的是display:box这个属性,它是今天弹性布局的主角,虽然它有个更加强大的弟弟display

html - table 表格不被撑开,td某些列宽度固定某些列自适应

table-layout 属性的解释:http://www.w3school.com.cn/cssref/pr_tab_table-layout.asp 1,实现table细边框,设置如下css: table,table td,table th{border:1px solid #ff0000;border-collapse:collapse;} 2,table表格宽度固定,同时td内容过长也不会被撑开,设置如下css: table{table-layout:fixed;word-break:b

css实现的左右两栏宽度自适应中间一栏宽度固定

css实现的左右两栏宽度自适应中间一栏宽度固定:更多的时候可能是设置左右两栏宽度固定,中间一栏宽度自适应,不过本章节恰恰相反,下面介绍一下如何实现中间一栏宽度固定,左右两栏宽度自适应,关于左右两栏固定,左右宽度自适应可以参阅左右两列宽度固定中间一栏宽度自适应代码实例一章节.代码实例: <!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta name="autho

CSS自适应布局(包括两边宽度固定中间宽度自适应与中间宽度固定两边宽度自适应)

1.两边宽度固定,中间宽度自适应 (1)非CSS3布局,浮动定位都可以(以下用浮动) css样式: #left { float: left;width: 200px; background: lime;} #right { float: right; width: 200px; background: lime;} #center { margin:0 200px; background: blue} html: <div id="left">left</div>