我们知道字体
这个东西,就是font-family。世界上有很多的字体,但是并不是所有的操作系统就拥有世界上全部的字体。比如,我写一个font-family:"微软雅黑",这个字体只有微软雅黑才有,到了ubuntu下面就没这个字体,那浏览器用什么字体显示呢?是不是就像显示乱码一样显示呢?
这个时候,浏览器想了一个方法,就是指定一种所有用户指定的字体都失效后最终代用的字体,叫通用字体族,就是sans-serif和serif。serif是衬线的意思,sans是没有的意思。关于衬线字体和非衬线字体,我这里就不多赘述了,在小字体时serif看得更加舒服清楚,但是serif由于衬线的缘故其艺术感和圆滑感不强,所以不适合做大字体的标题。而倒是sans-serif适合大字体显示。
以下为衬线字体
I love web design
I love web design
以下为非衬线字体
I love web design
I love web design
但是呢,通用字体族具体对应哪一个字体其实是由浏览器自己决定的。我们在写font-family时,需要写出尽可能多的我们期望的字体,而不能依赖于通用字体族,因为谁也不知道到底那是什么字体。
而有关中文的字体问题也是存在的,比如 font-family:"Comic San MS",黑体,sans-serif。
当我们打"我爱网页设计"时,会首先在Comic San MS中查找有没有那些汉字,结果得到的是一个缺字符就是没找到的意思,于是就又去黑体里找,找到了,就用黑体来显示。但是呢,在ie和opera下,当在Comic San MS中得到缺字符时,就直接调到最后一个通用字体族了,也就是黑体被安静地忽略了,这就是一个bug的地方。
而如果我们用英文字体来显示中文字体时会出现什么呢?在ubuntu下,所有的默认中文字符会被显示成幼圆,而在buuntu下可能就是仿宋。当浏览器得到缺字符时就去搜索操作系统默认的字体。
接下来我要讨论一个html
结构的问题
我们平时在写html,如果专业一点,我们在写xhtml的时候我们脑子里都在想些什么呢?我们是想着哦,这个div应该放在右边,那个div放在左边,于是应该先写左边的div,再写右边的div,然后再起一个#left_column的id,这简直就是一个2b行为。为什么,因为我们已经在布局了,而xhtml是没有布局的。我们考虑的应该是数据结构,比如网速比较慢的时候,浏览器会按照流的顺序加载html的dom,这个时候是按照你写html的顺序来加载的,如果你把比较重要的结构放在了最后,那么这个内容就会延迟很多才显示,我们完全可以把重要的放在前面写,然后再用css技巧比如说float或是别的手段来调节布局。我们在写html时千万不要想着布局,而是要想数据结构。
还有一个我们在网上看到的xhtml还有xml。这里的x是指什么?前者指的是html更加有xml的写法规范,更像一个xml。而xml的x指标记是可扩展的,一个<table>在xhtml里就是一个表格,而在xml里可能是一张桌子或是一个滑板这都有可能,所以是可扩展的,换句话说xhtml就是不怎么能扩展的。这里有一个双刃剑,可扩展的当然好,但是这会造成语义不明确,而xhtml语义就很明确,毕竟我们写给浏览器的代码不能是乱七八糟的一大堆我们随意意淫出来的标记,用xhtml还是比较靠谱的,这是一个折衷的方案。但是呢,有一个新的技术叫做xml+xsl我觉得这里的意思是把完全可扩展的数据结构转换成有特殊需要的语义标记。有兴趣的话可以看一下xml+xsl,xml可以转换成html或是wml或是其他的标记语言,但是我不喜欢用这个,这个太过于麻烦和死板了。
视觉元素不一定要对应一个xhtml中一个实实在在的元素。xhtml包含的是一个内容!因此我们在设计xhtml时不要老想着得到什么效果,而应该单纯想着信息的组织形式。这里css zengarden就做得非常好。
语义和结构是xhtml的两大核心。
关于
CSS
我们可以去看一下在
w3上关于
div
的定义是怎样的,
The div element
,
in conjunction with the id and class attributes,offer a generic mechanism for adding structure to documents.The element define content to be block-level but impose no other presentational idioms on the content.
这里明确写了
div
是用来
for structure
的,而不是用来
for layout
的。
现在我要谈一下什么是代码结构,什么是语义结构。我是这么看的,语义结构就是说我们就只看那些标记,我们能不能只看那些标记就知道那些标记代表了什么,有em
或是
strong
表示强调,
p
表示一个段落,
input
为输入框等等。但是呢,并不是说你看懂了那些标记的意思代码就完美了,这其实远远不够。比如我们写一个程序,我们没有用什么模块化的思想来写,只是随性而写,也不管什么面向对象或是函数的提取,统统写成一坨,当然程序员看了代码当然可以看得懂,但是代码结构不好。你没有用面向对象,没有提取什么函数,也没有暴露给外界接口即模块化做得不好,那么别人就很难用你的代码。同样,你
xhtml
代码结构不好,美工利用你写的
xhmtl
就很难着手,因为都混成一块儿了,没有做到结构的分离。好的代码结构不仅可以便于固定
xhtml
,还对
css
提供很高的自由度。
比如
<h3>登录</h3>
<label for="name">用户名</label>
<input id="name"/>
<label for="password">密码</label>
<input type="password" id="password">
<input type="submit " />
<div id="login_form">
<h3>登录</h3>
<div>
<label for="name">用户名</label>
<input id="name"/>
</div>
<div>
<label for="password">密码</label>
<input type="password" id="password">
</div>
<div><input type="submit " /></div>
</div>
这里的div
就是为了使代码结构更好的,这里很多人肯定是为了
div
可以换行所以用
div
,那如果那些
input
也可以达到换行的效果是不是我们就不用
div
了呢?不!也要用,因为
div
是用来分隔内容的,是使代码更加结构化的,不要想着换行这些和结构无关的东西!
但是呢,这里有一个问题,就是如果我们都用div
来做节点或是分隔很容易产生语义模糊的地方,比如我们都用
div
做登录表单的节点,又用
div
做资料展示的节点等等,有时不用做节点,用作行元素也用
div
就像上面的登录表单里面的
div
一样,这个时候就混淆了,要是用
css
的话还得分号作为节点的
div
改怎么样,作为行的
div
改怎么样,
padding
不同啊,
magin
也不一样啊!还得设个
class
,这样觉得怪怪的,语义就不简洁了呀!貌似
xhtml2.0
有一个什么
section和
line
的,而且还保留了div
,是不是可以解决这个问题呢?要研究一下……
我之前在写html
的时候,经常看到别人用什么
strong
和
em
的标记,我觉得那样不好,因为我知道
font
不好,因为把表现和结构混在一起了,而
strong
会使字体变粗,我就觉得这样也是把表现和结构耦合了,其实这么想是大错特错的。
Em
和
strong
并不是为了表现,而是为了强调内容,本质上还是内容。而我们完全可以取消掉
strong
的默认
css
样式让
strong
不显示粗体。而且就算
storng
没有任何额外的视觉效果我们还是要写
strong
,因为那是语义和内容上的,是为了强调,而视觉效果则是
xhtml
编写人员意想不到的效果。
什么时候用table
,当结构侧重于列(或是有趋势扩展成多列的情况)时用
table
。什么时候用
ol/li
,当结构侧重于产生级(文件夹树的结构,或是有趋势扩展成级的结构)时用
ol/li
。
分享到:
相关推荐
【自主研修摘记】的主题聚焦于如何激发学生对计算的兴趣,这在数学教育中尤为重要。以下是摘记中提到的五个关键策略: 1. **创设情境,激发兴趣**:教师应当利用教材内容和学生的心理特点,设计引人入胜的课堂开头...
- 札记:结合摘记和心得,记录读书时的点滴想法,形式多样,篇幅不限。 - 心得(读后感):表达读书后的深刻体会,可以是对原文观点的赞同、反对,或是引发的新思考。 - 综合读书笔记:针对多篇讨论同一主题的...
总的来说,这份“斯蒂芬P罗宾斯管理学笔记”不仅覆盖了管理学的基本理论,还结合了实际案例和现代管理实践,是备考者和管理实践者不可多得的学习资源。通过深入学习和理解这些笔记,可以帮助读者提升管理素养,更好...
### Hibrenate 学习摘记 #### Hibernate 概述与基本配置 Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了 Java 应用程序与数据库之间的交互过程。通过将对象模型与数据库模型进行映射,开发人员可以更...
我每周都阅读一些教育教学相关的杂志,认真做好读书摘记。充分利用网络拓展理论学习,及时了解当今社会发展趋势,关注留守学生的概况,学习他人好的经验。我认为,理论学习是我们课题研究的基础,只有加强理论学习,...
学生将在Word中制作“航天知识摘记”,并学习如何通过搜索引擎找到“国家航天局”的“航天知识”栏目,获取文字和图片资料。在这个过程中,教师会介绍如何选择性粘贴文字,以及如何将图片插入文档并调整其环绕方式,...
Fluent软件应用过程中的一些比较重要的说明摘记
申报材料包括学生申报表、读书摘记、小作文或阅读心得、发表文章证明以及作文获奖证书等,这些材料能够全面反映学生在课外阅读方面的实际表现和成果。 6. 书香校园文化氛围:文件提到要营造书香校园文化氛围,这...
3. **促进知识交流与分享**:鼓励学生分享自己的读书故事,推荐好书,并通过“小小书天使”、“真言堂”等栏目,让学生互相学习,交流阅读心得。 4. **激发学生的积极性**:孩子们主动提出建立班级流动图书馆,捐赠...
软考信息系统管理师考试摘记。 项 目 管 理 知 识 体 系(九大管理) INPUT TOOL OUTPUT 4.1 制定项目章程 1、合同(如果适用) 1、项目选择方法 1、项目章程 2、项目工作说明书 2、项目管理方法系 3、事业环境...
- **C++ 编程规范**:标签指出了这些摘记属于C++编程规范领域,适用于想要提高C++代码质量的学习者或开发者。 #### 内容分析 基于给定的部分内容,我们可以整理出以下关键知识点: ##### No.2: 使用`const`、枚举...
札记是心得式笔记的一种形式,它是摘记要点与个人心得的结合。心得体会可以帮助我们提炼出阅读的核心价值,形成独立的观点和见解,对个人的成长和思考能力提升具有积极影响。 4. 记载式笔记: 记载式笔记是一种综合...
《胡希恕伤寒论坛讲座》摘记.doc
2. **举办读书主题活动**:如新书介绍、读书心得分享、主题班会等,引导学生正确选书、藏书、读书。 3. **出一期黑板报**:通过黑板报展示读书相关的知识,增加学生对阅读的兴趣。 倡议书强调,读书是一种长期的...
- **记读书笔记**:记读书笔记和摘记有助于加深理解和记忆,同时提高鉴赏能力和写作能力。 - **设定阅读时间**:建议每周至少有两小时的专门阅读时间,将阅读融入日常生活。 - **写作分享**:提倡每月至少写一篇...
EJB(Enterprise JavaBeans)是Java EE平台中的一个核心组件,用于构建企业级分布式应用程序。EJB 3是其第三个主要版本,发布于2006年,它引入了...如果你正在探索或使用EJB 3,这些摘记和文档将是你宝贵的参考资料。
【标题】: 参加双优课比赛心得体会 【描述】: 作者分享了参加“双优课”比赛的心得,包括说课和上课环节的准备与反思,以及新课程改革的理解。 【标签】: 精品 【知识点详解】: 1. **新课程改革理解**:作者在...
学生应完成一篇读书心得,通过深入思考和表达,锻炼自己的逻辑思维和文字组织能力。此外,给老师写一封信,既是情感交流的机会,也是提升书面表达的练习,可以借此机会向老师表达感谢,提出建议,或者分享内心的想法...
Codelife 不止代码 - 自阅读加注标签-技术规划的借鉴 有摘记和感想.md,提供了原文的详细目录大纲,更重要的是给出了自学摘记,记录下诸多感想。 人的学习进步体现在对抽象问题的概括和具体问题的有针对性的见解,...
了解过一些如何更好的学习,最后得到的答案都是一致的:项目驱动(目标驱动),实践为王,应用为王! 从今天起,定好短期的细化目标任务,然后再针对性的看这类工具技能书,尽快提升自己的实战技能! 目 一、数据分析...