Macji Pro2010

记录一些应该记录的东东

几个css技巧

August 18, 2008 - by Macji - HTML/CSS/JS/PHP - css

1.始终让firefox出现纵向滚动条


让我们的页面不够长的时候, firefox默认不会显示滚动条,只有当页面长度超过浏览器可显示的长度时,才会出现滚动条。那如何让firefox始终显示纵向滚动条呢?


:root{
	overflow-y: scroll;
}

但这会使opera9.5出现横向滚动条。如果我们只想给我firefox出现纵向滚动条,那么我们用它的私有属性。


html{
	overflow:-moz-scrollbars-vertical;
}

始终让firefox出现纵向滚动条。更多firefox的私有属性


2.防止内容过多从而打乱固定宽度的布局


最简单的布局,就是用float:left加上固定width,但有时容器里面的内容过多,会撑开宽度,打乱布局。


#main{
	overflow:hidden;
}

3.防止链接换行


a{
	white-space:nowrap;
}

更多css技巧:http://www.cssglobe.com/post/1392/8-premium-one-line-css-tips

没有评论哦,马上发表评论»

跨浏览器实现float:center,No CSS hacks

July 29, 2008 - by Macji - HTML/CSS/JS/PHP - css, float

我们都知道float:left和float:right,但是否想过float:center呢?居中浮动。。。

<div id="macji">
    <ul class="macji-skin">
        <li>列表一</li>
        <li>列表二</li>

        <li>列表三</li>
    </ul>
</div>

我们希望实现li是浮动的,并且居中的(li个数不固定,ul宽度未知)。可以设置ul的text-align:center,再设置li的display,可以实现居中,但这样不是我们的初衷,我们需要实现float:center。


这里我们得先重温一下position:relative,它将依据left,right,top,bottom等属性在正常文档流中偏移位置。那我们可以让ul为position:relative;left:50%,然后再让li像左浮动,在让它position:relative;right:50%(或者left:-50%),那么li就像向中间浮动一样居中了。废话不多说,先试试。

#macji{
    position:relative;
    width:100%;
    height:80px;
    background-color:#eee;
    text-align:center;
    overflow:hidden;
}
#macji .macji-skin{
    float:left;
    position:relative;
    left:50%;
}
#macji .macji-skin li{
    position:relative;
    right:50%;
    float:left;
    margin:10px;
    padding:0 10px;
    border:solid 1px #000;
    line-height:60px;
}

猛击这里,查看演示»

扩展阅读

3 条评论»

语义元素和非语义元素

July 13, 2008 - by Macji - HTML/CSS/JS/PHP - html, semantics

在我上一篇文章,我指出“所有语义的元素都不应作为布局来使用”,引来很多反对声音。这里我想解释一下我认为的语义和非语义元素(只是个人观点哦)。


非语义元素,布局元素


我认为的作为布局只有div,span,因为他们只有属性display。一个表示块(断行的),一个表示内联的(不断行的),并无其他实际意义。所以他们只能用来布局,我们可以理解为水泥板和砖头。

The DIV and SPAN elements, in conjunction with the id and class attributes, offer a generic mechanism for adding structure to documents. These elements define content to be inline (SPAN) or block-level (DIV) but impose no other presentational idioms on the content. Thus, authors may use these elements in conjunction with style sheets, the lang attribute, etc., to tailor HTML to their own needs and tastes.

语义元素,非布局元素

以上是常见的一些元素(当然还有很多元素,这里就不一一列出了),我们拿出来比较就会发现,语义元素和非语义元素的差别。最后我还是想强调,所有语义的元素都不应作为布局来使用。(如果你不同意我的观点,你当然坚持自己的,挖哈哈~~)。

1 条评论»

结构还是内容

July 7, 2008 - by Macji - HTML/CSS/JS/PHP - html

迷惑,是否应该把结构和内容分清楚?这在于多余标签和精炼标签。光光字面意思,多余和精炼。你会选谁呢。但我不觉得多余代码有什么不好。我们常见到多余代码,例如:

<div class=“list”>
    <ul>
        <li>清单一</li>
        <li>清单一</li>

        <li>清单一</li>
    </ul>
</div>

<div class="footer">
    <p>这里是我的版权,一个开始走火的人的版权</p>

</div>

大家都会说外层的div可以省略,然后把它的class给子容器(ul,p)。我并不这么认为,外层的div是结构,而ul或者p是呈现语义,也就是展现一个列表或者一个段落,列表或者段落总不能用来布局吧?这好比一间房子,我们把结构去掉,直接用墙纸,窗帘来做结构,那这房子还有谁敢住哦。


以后有一些小需求,比如list那里增加一个“更多”链接,按照“精炼”就要改动结构或者就增加一个li放“更多”,但这样合适么。。。


我们的页面不仅仅要用户看上去内容清晰,我们内在的结构也要清晰。所以我更倾向把结构分清楚,然后再填写内容。

1 条评论»

开始接触microformats吧

June 23, 2008 - by Macji - HTML/CSS/JS/PHP - microformats

两年前,如果你在谈论microformats(微格式) ,那么你是一个很“前卫”的人。两个月前,如果你开始谈论microformats,那么你一定比我知道的更多,那时我还不知道它是虾米。今天,你还不知道microformats是什么的话,那么你该开始关注它了。


如果你可以查看源文件,你会发现我博客上能用到microformats的地方,我都用了。我坚信未来几年,microformats将是新的热点。


那么,microformats是到底是什么呢?

一种通过在网页中加入数据项目,而使相关信息可由软件提取、搜索、保存、引用或合并的方法


更技术化的表述是:仅使用标准(X)HTML以及一套通用类名称的语义置标项目


更更技术化的表述是:一堆命名约定

这里没有例子,具体文档和例子请查看官方wiki

没有评论哦,马上发表评论»