我很难让 CSS 像我希望的那样工作(当你登录或做某事时显示的那些小消息或确认你的操作,例如在 Rails 中)。
我希望它:
- 居住在任意 div 中
- 看起来像一个居中的盒子,里面有文字
- 仅与适合文本(如果小于指定的最大宽度)或环绕文本(如果更大)所需的一样大
- 具有居中或左对齐(或组合)文本,具体取决于 Flash(例如,短错误居中;较长的新手入门介绍是左对齐);一个额外的 CSS 类(例如'flash info left')来支持这个是可以的
- 在页面上相邻的页面上有多个闪烁效果很好(如示例)
- 最好由单个元素和文本周围的类组成,而不是包装元素内的元素内的文本
- 最好是 YUI CSS 兼容和纯 CSS(不是 JS)
- 在 IE7+、FFx 3+、Safari 3+ 上正常工作;在旧浏览器上工作“足够好”
我见过的大多数 CSS 都没有做到这一点——例如,大多数都指定了一个固定的宽度,这意味着它要么被包装得很差,要么有太多的填充。
我怎样才能做到这一点?(或者:为什么我不能?)
这是我当前的 CSS:
<div class="flash info">
<span class="close"><a href="AJAX callback">X</a></span>
Some informational text here that can be closed w/ the X
</div>
<div class="flash error">
Some other simultaneous error
</div>
.flash {
text-align: center;
padding: .3em .4em;
margin: 0 auto .5em;
clear: both;
max-width: 46.923em; /* 610/13 */
*max-width: 45.750em; /* 610/13.3333 - for IE */
}
.flash.error {
border: thin solid #8b0000;
background: #ffc0cb;
}
.flash.notice, .flash.info {
border: thin solid #ff0;
background: #ffe;
}
.flash.warning {
border: thin solid #b8860b;
background: #ff0;
}
.flash .close {
float: right;
}
.flash .close a {
color: #f00;
text-decoration: none;
}
加分项:我只用下面的工具提示代码实现了我想要的部分;即,它不能包装。
出于某种原因,除非指定 nowrap 或宽度,否则它默认宽度非常小。我不知道为什么,或者如何让它以特定的、更宽的宽度包装(就像我想用闪光灯一样)。
Some text with <span class="tooltip">info <span>i can has info?</span></span> about a word
.tooltip {
position: relative; /*this is the key*/
background-color: #ffa;
}
.tooltip:hover{
background-color: #ff6;
}
.tooltip span {
display: none
}
.tooltip:hover span { /*the span will display just on :hover state*/
z-index: 1;
display: block;
position: absolute;
top: 1.6em;
left: 0;
border: thin solid #ff0;
background: #ffe;
padding: .3em .6em;
text-align: left;
white-space: nowrap;
}
谢谢!
- 赛