`
hax
  • 浏览: 965076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《精通CSS》读书笔记(三)

    博客分类:
  • CSS
阅读更多
上篇

第3章

这一章里展示了众多的trick。下面总结和补充一下方案实现和限制条件。

首先是针对永恒的话题:圆角框。

1. 固定宽度圆角框

实现:在外层元素(容器)上设定背景色和底部圆角图,在标题(内部第一个元素)上设定顶部圆角图。

限制:
* 宽度是定值像素的。
* 必须有内外两层block元素,内外层要紧贴(即外层不能有padding,内层不能有margin和border)。
* 圆角背景色是固定的(如白色),不能是透明的。

2. 固定宽度圆角框的变形

实现:在外层元素(容器)上设定纵向重复(repeat-y)的背景图,在内部第一个元素上设定顶部圆角图,在内部最后一个元素上设定底部圆角图。

限制:
* 宽度是定值像素的。
* 必须有内外两层block元素,内层至少有两个元素,内外层要紧贴(即外层不能有padding,内层不能有margin和border)。
* 圆角背景色是固定的(如白色),不能是透明的。

注:固定背景色的限制可以通过增加位移来解决,例如:
<div class="box">
	<div class="top">Heading</div>
	<div>Content...</div>
	<div class="bottom">Content...</div>
</div>

.box {
	background:url(border-middle.png) repeat-y; width:120px;
	margin:12px 0;
}
.box .top {
	background:url(border-top.png) top no-repeat;
	margin:0;
	position:relative; top:-12px; padding-top:12px; margin-bottom:-12px;
}
.box .bottom {
	background:url(border-bottom.png) bottom no-repeat;
	margin:0;
	position:relative; top:12px; padding-bottom:12px; margin-top:-12px;
}


注意,由于使用了margin,需要注意垂直合并的情况,增加了样式的复杂度。

3. sliding doors 技巧

实现:添加若干层额外的container,在每层上分别应用左下、右下、左上、右上的圆角图。

限制:
* 必须有四层block元素,内外层要紧贴(即外层不能有padding,内层不能有margin和border)。
* 圆角背景色是固定的(如白色),不能是透明的。

本质上,sliding doors技巧和前两个方式是一致的,都是通过多层block元素上的背景重叠来模拟总体效果。区别就是前面只需要两层——多数情况下,语义结构可以有两层元素,而几乎不可能出现语义结构需要四层元素的情况。

本书作者对此的看法是,如果只要少数地方,那忍受一下无意义标签也可以,但是如果有很多地方,那就需要考虑其方案。

我对此的看法有些不同。实际上,书中示例在容器宽度高度增大到超出图片宽高时,就会出现空白。如果要适应任意大小的容器,要么增大图片尺寸到一个很大的数值,要么增加更多层次,使用多达九层元素(相当于切分成井字形的九份)!

因此同样是忍受无语义元素,我宁可使用table构造一个井字布局来模拟border,这个方式比多层嵌套无语义div更清晰。

当然,最好的方案是使用CSS3的border-image和border-radius。在没有CSS3支持前,则是使用脚本自动插入辅助元素来实现。书中给出的是http://www.456bereastreet.com/archive/200505/transparent_custom_corners_and_borders/

4. mountaintop corner 技巧

实现:添加若干层额外的container,在每层上分别应用左下、右下、左上、右上的圆角蒙板图。

限制:
* 必须有四层block元素,内外层要紧贴(即外层不能有padding,内层不能有margin和border)。
* 圆角背景色是固定的(如白色)。

此技巧的本意是允许容器背景色(图)灵活变换,但是由于其外部背景确必须是固定单色的(不像前面的技巧是有可能克服的),所以在我看来,这个trick局限性非常之大,不值得推广。

...
分享到:
评论
1 楼 tiger.passion 2007-10-19  
box在制作中最常打交道的元素之一,hax,你写的这中box结构非常常见,很长一段时间,也是这样,不过我后来发现一种结构更简单,更实用的.
    <!-- folder --> 
    <div class="folder-top"><h3>head</h3></div>      
    <div class="folder-bottom">Content...</div>  
    <!-- end folder --> 

相关推荐

    PHP从入门到精通完整笔记

    这份笔记包含了从基础概念到高级技术的详细讲解,涵盖了HTML+CSS笔记和PHP课程两大部分,共计149讲,为学习者提供了一个扎实的起点。 在PHP的入门阶段,首先会介绍PHP的基础知识,包括PHP的安装和配置环境,如何...

    《HTML5 CSS3 JavaScript从入门到精通微课》读书笔记模板.pptx

    《HTML5 CSS3 JavaScript从入门到精通微课》读书笔记模板.pptx

    PHP从入门到精通_html+CSS笔记.rar_8V4_PHP从入门到精通 学习文档_php 学习

    【PHP从入门到精通_html+CSS笔记.rar_8V4_PHP从入门到精通 学习文档_php 学习】 这份压缩包文件包含了两份重要的学习资料,旨在帮助初学者掌握PHP编程语言及其与HTML和CSS的结合应用。PHP是一种广泛使用的服务器端...

    HTML5+CSS3从入门到精通.zip

    HTML5和CSS3是现代网页开发的基石,它们极大地提升了网页设计的灵活性和表现力。在JavaWeb前端开发中,熟练掌握这两项技术...通过阅读"HTML5+CSS3从入门到精通1.pdf"这份文档,你可以系统地学习并掌握这些关键知识点。

    《跟我学SEO从入门到精通-张新星》精华读书笔记第十一章

    ### 《跟我学SEO从入门到精通-张新星》精华读书笔记第十一章 #### 11.2 做网站的准备工作和建设内容 - **选择熟悉领域**:选择自己熟悉的行业来创建网站,这有助于更好地理解目标受众的需求,并能够提供更高质量的...

    读书笔记: JavaWeb从入门到精通 第13章: Ajax 技术

    在本篇【读书笔记: JavaWeb从入门到精通 第13章: Ajax 技术】中,我们将深入探讨Ajax(Asynchronous JavaScript and XML)技术,它是现代Web开发中不可或缺的一部分,用于实现页面的异步更新,提升用户体验。...

    ajax从入门到精通视频

    ### AJAX从入门到精通知识点详解 #### 一、AJAX概述 - **定义**:Asynchronous JavaScript and XML(异步JavaScript与XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 - **发展历程**:...

    JavaScript学习笔记

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它在浏览器端...通过阅读"JavaScript从入门到精通学习笔记.docx"文档和解压"Chapter2.rar",你将深入探索以上各个知识点,逐步成为一名熟练的JavaScript开发者。

    reading-notes:班级读书笔记

    【标题】"reading-notes:班级读书笔记" 涉及的知识点主要集中在软件开发的初级到高级阶段,其中包含了对编程基础知识的理解、软件开发流程的介绍以及可能涉及到的高级技术。这个标题暗示了这是一个关于软件工程学习...

    惊现学习CSS应该注意的方法

    5. **做笔记和提问**:在第二次阅读时,开始做学习笔记,记录重要概念和疑问。如果遇到难题,不要害怕寻求帮助,可以在论坛上发帖提问。学会如何清晰地表达问题也是学习的一部分。 6. **动手实践**:阅读教程的同时...

    章-绪论-网站设计与开发素质课课件(与“学习”有关文档共9张).pptx

    推荐的学习资源包括CSDN、博客园等专业论坛,以及相关的技术书籍,如《精通CSS:高级Web标准解决方案》和《ASP.NET 3.5从入门到精通》等。 课程内容主要包括HTML和HTML5的基础与进阶,XHTML的结构规范,CSS用于页面...

    模拟过山车动态的文字动画特效.rar

    2. 精通CSS3,尤其是动画和变换相关的特性。 3. 对HTML5的canvas有深入理解,知道如何在画布上绘制和操作图形。 4. 一定的物理知识,特别是基础力学原理。 5. 良好的视觉设计感,能创造出引人入胜的动画效果。 总的...

    计算机专业学习计划[精品文档].docx

    在学习习惯方面,预习、听课和做笔记是三大支柱。预习时,应理解新知识与旧知识的联系,提炼关键点并找出难点。听课时,专注理解而非机械记忆,确保对课程内容有深入理解。做笔记要精炼且及时整理,以便后续复习。 ...

    java学习资料总结2015新

    - **《HTML+CSS网页设计与布局从入门到精通》** 和 **HTML 教程** 提供了关于 HTML 和 CSS 的基础知识,是前端开发者必读的经典之作。 - **《JavaScriptDOM编程艺术第2版》** 介绍了 JavaScript 与 DOM 的交互方式...

    尚硅谷教程React视频.txt

    3. **观看尚硅谷React教程**:尚硅谷提供的React教程涵盖了从入门到精通的全过程,包括React的基本概念、常用API的使用方法、项目实战等内容。跟随教程逐步学习,可以帮助你系统地掌握React。 4. **动手实践**:理论...

    JavaScript语言案例介绍.zip

    总之,这个压缩包提供了一个实践性的JavaScript学习资源,通过查看图像和阅读文本文件,你可以深化对JavaScript语言的理解,并提升实际编程技能。记住,理论知识和实践经验相结合,是成为精通JavaScript开发者的...

    7年的程序人生

    "程序人生.chm"文件可能是一个程序员个人的记录,其中包含了他这七年来的心得体会、技术笔记、项目案例,甚至可能包括他在解决特定问题时的解决方案。阅读这样的资料,对其他程序员来说是一份宝贵的资源,可以借鉴他...

    meganindya

    你好there我是Anindya 我是最后一年的本科生,从印度的一家公共工程机构攻读信息技术的BTech。 我今年22岁。 我是一名技术爱好者,并积极关注新技术产品。 我喜欢学习事物的工作方式,... 我精通HTML , CSS和JavaScr

    如何提高自己的编程能力 丰富的想象力

    因此,除了精通一两种主流编程语言之外,还可以尝试学习其他语言和技术栈,比如前端开发技术(HTML/CSS/JavaScript)、后端框架(如Spring Boot、Django)、数据库技术以及云计算平台等。这样不仅可以拓宽你的视野,...

    qss中文总结.rar

    QSS,全称Qt StyleSheet,是Qt框架中用于定义用户界面外观的一种样式表语言,类似于网页设计中的CSS。本文将对QSS进行详细的中文总结,旨在帮助开发者更好地理解和应用QSS来美化他们的Qt应用。 QSS的基本概念: 1. ...

Global site tag (gtag.js) - Google Analytics