CSS:何制作一个向各个方向延展box?

http://www.webdesignerwall.com/tutorials/css-the-all-expandable-box/
网页教学网

在HTML中, 如果过你没有指定一个确定的宽度的话, 块级元素本身就会在垂直方向上延展. 想象一个无序清单. 这个清单会自己扩展来适应它所有的清单元素. 如果用户在他们的浏览器中增加了字体大小, 清单会在垂直方向上延展, 来适应变大的内容. 有时候, 感觉仅仅在垂直方向延展是非常局限的, 如果水平方向也能和垂直方向一样因为用户增加字体大小而自延展那就更好了.

概要

如果你用过Firefox 3 Beta的话, 你会发现它已经会自动这样处理了. 在Firefox 3增加大小不仅仅是增加字体大小. 它增加所有元素的大小. 这样看起来非常自然和漂亮. 但是尽管Firefox的市场份额在不断上涨, 但是我们还是不能指望Firefox的调整大小功能来达成用户需求.

我尝试着解释如何制作一个有以下特点的各方向延展box:

  能在所有主流浏览器中工作.
  在垂直和水平方向上延展.
  用一个单独的背景图片.

这有些苛求, 特别是要使用背景图片. 它需要用到一种 CSS精灵技术(图片的不同区域用在不同的地方)和滑动门技术(依赖当前的大小显示不同长度的图片)的结合方法. 网页教学网

让box水平可延展

有一个简单的方法让box水平可延展: 用em来定义你的宽度. 例如:

.box {
  width: 35em;
  margin: 50px auto;
}
网页教学网

在这里margin属性只是为了举例, 让它水平居中并且总是和浏览器顶边有一定距离. 网页教学网

思考图片定位

在这个例子中, 这是个圆角box, 有点投影, 还有点内部阴影. 这就意味着这个box的四个角显然是不同的. 这里的挑战是图片是不能延展的.我们需要一种方法, 让四个不同的圆角图片分别应用到box的四个角上. .Com

我们还需要接合它们让转变无明显界线, 我们还要尝试着用一个背景图片完成, 来让它尽可能生效. .Com

下面是一张你关心的我们需要做什么的示意图, box将被拼接, 我把它们分开, 你就能看到所有的box了.


网页教学网

当在创建背景图片时, 要考虑大小, 你的背景图片越大, 在不破坏布局的情况下, 你就能延展的越大. 示例中的背景是700像素宽它能在4 - 5种字体大小下工作. 但是如果超过了这个尺寸, 它最终会分离开.

编写box

当然, 我们要用XHTML来尽可能的达成语义化. 这意味着不能使用额外的不放置内容而纯粹为了设计的标签. 不幸的是, 用四个box来拼接一个box时, 这没办法完成. .Com

它是这样完成的: .Com

<div class="box">
  <div class="topleft">
  <div class="topright">
    <div>
       CONTENT GOES HERE
    </div>
  </div>
  </div>

  <div class="bottomleft">
  <div class="bottomright">
  </div>
  </div>
</div>

为box设定样式

这里是box中的四个区域: .Com

.box div.topleft {
 display: block;
 background: url("images/box-bg.png") top left no-repeat white;
 padding: 2.0em 0em 0em 2.0em;
} 网页教学网

.box div.topright {
 display: block;
 background: url("images/box-bg.png") top right no-repeat white;
 padding: 2.0em;
 margin: -2.0em 0 0 2.0em;
}
.Com

.box div.bottomleft {
 display: block;
 height: 45px;
 margin-top: -2.0em;
 background: url("images/box-bg.png") bottom left no-repeat white;
} .Com

.box div.bottomright {
 display: block;
 background: url("images/box-bg.png") bottom right no-repeat white;
 height: 45px;
 margin-left: 3.0em;
}
.Com

注意, 负外补丁是将应用到父级元素上的内补丁值填满的必要方法. 它可以很好的解决用上内补丁的方法. 让文字包含在box内部, 同时注意, 我把底部div的高度用像素定义了, 目的是为了让它们保持短小并且不延展.

时间: 2024-09-10 00:36:40

CSS:何制作一个向各个方向延展box?的相关文章

CSS如何制作一个向各个方向延展box?

  在HTML中, 如果过你没有指定一个确定的宽度的话, 块级元素本身就会在垂直方向上延展. 想象一个无序清单. 这个清单会自己扩展来适应它所有的清单元素. 如果用户在他们的浏览器中增加了字体大小, 清单会在垂直方向上延展, 来适应变大的内容. 有时候, 感觉仅仅在垂直方向延展是非常局限的, 如果水平方向也能和垂直方向一样因为用户增加字体大小而自延展那就更好了. 概要 如果你用过Firefox 3 Beta的话, 你会发现它已经会自动这样处理了. 在Firefox 3增加大小不仅仅是增加字体大小

教你在Word文档里制作一个方向指南针

  首先新建一个Microsoft office word 文档里制作一个方向指南针-指南针指向哪个方向"> 在word里写下"东南西北"四个字如图 接下来选中南和北两字 如图 选择工具栏段落组中的中文版式按钮旁边的小三角 选择第一个纵横混排,把适应行宽前面的勾去掉 效果如图,一个方向指南针就制作好了

只有一点html和css基础,如何制作一个织梦的首页模板?用dw可以吗?具体怎么做呢

问题描述 只有一点html和css基础,如何制作一个织梦的首页模板?用dw可以吗?具体怎么做呢 只有一点html和css基础,如何制作一个织梦的首页模板?用dw可以吗?具体怎么做呢 解决方案 如果懂的不多说实话,制作网页是有一定困难的,而且dw自动生成的代码可读性都很差,前端基础不牢靠的话生成的代码很难进行修改的 解决方案二: 可以用Dreamweaver制作网页的,下个软件安装,找个教程看看就可以了.

手把手教您制作一个完整网站(内附教程)

手把手教您制作一个完整网站(内附教程) 1.搞个简单的策划先. 至少应该有一个大概的方向吧,先确定网站的类型,是地区门户.行业门户,还是下载.电影.论坛等等.然后基本确定网站的名称. 2.找一个合适的域名. 域名注册.com(国际域名)和.cn(国内域名)为宜,域名最好不要太长.且有一定的意义.容易记,现在好的域名已经不多了,你可灵活的使用数字.英文单词.拼音等的组合,在域名的前.后加上i.e.51.ok.hao.88.163等,可以灵活的组合出许多好的域名.域名注册信息查询 http://ww

如何制作一个HTML5的iPhone应用程序

在过去的一年里,你是不是很沮丧,对于所有的使用Objective-C开发iPhone程序的开发者而言,日子都不那么好过,你是不是为了学习开发iPhone应用程序曾经硬着头皮去读着那生涩难懂的学习教程,事实是Objective-C是一门类似C语言的语言,这也就绝定了它不是那么容易学习. 我不是劝你去放弃学习Objective-C,因为世上无难事,只怕有心人.但是条条大路通罗马,也许你转换下思路你可以用另一种方法达到相同的目的. 你可以制作一个原生的iPhone应用程序去模仿其他的程序,多半上它也许

CSS网页制作技巧:IE浏览器下li的默认高度问题

文章简介:CSS网页制作技巧:IE浏览器下li的默认高度问题. 昨天,在家打开IE7浏览器看"视频导航网"的时候,发现居然有排版错误. 用F12开发者工具看了下,发现 li 的默认高度既然不统一? 用工具看了下,发现火狐高度解析统一为33px,而IE7解析高度根据字的不一样,默认解析的高度为30px,纯数字的解析高度为31px;中英文组合的解析高度为32px; 解决方法一:给LI设置高度后,IE7正常了,但IE6问题依然存在.原来,LI里面还嵌套着A标签,给A也设置一个高度后问题解决.

div和css网页制作:初学者使用div和css误区

文章简介:初学者用div+css结构写网页的几个误区. 网页的制作中对于用div和css结构写静态页目前已经很成熟,但许多新入行的朋友对于使用div和css结构还有很多误区,这些误区也是我曾经经历过的并且被"老鸟"指正的地方,所以总结下来分享给大家,希望对写网页有所帮助. 1.用div+css结构制作静态html网页不等于彻底抛弃古老的table写法.之所以不建议用table来布局网页是因为在网页加载很慢的时候要等table结构加载完成才能看到网页,其次是table的布局没有一定的语义

HTML+CSS网页制作实例:制作左上角卷角效果的网页

文章简介:HTML+CSS网页制作实例:制作左上角卷角效果的网页. 英文原文 http://designshack.net/articles/css/code-a-simple-folded-corner-effect-with-css/ 这篇文章中我们将介绍如何制做paper左上角的卷角效果. 我想让我的几句文字以一张有卷角折叠效果的纸为背景,如果直接用一张图片,很容易实现,但是这里我要用css来实现. 我的这种实现方法并不是非常具有创新意义,但是还是值得拿出来分享的,简单的来说,除了一个矩形

CSS网页制作技巧:隐藏网页元素的方法汇总

文章简介:CSS网页制作技巧:隐藏网页元素的方法汇总. 在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.下面一个个列出,选一个适合你的 { display: none; /* 不占据空间,无法点击 */ }{ visibility: hidden; /* 占据空间,无法点击 */ }{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }{ position: rela