如果你看一下CSS盒子模型规范,你会看到以下内容:
[margin]百分比是根据生成的框的包含块的宽度计算的.请注意,对于"margin-top"和"margin-bottom"也是如此.如果包含块的宽度取决于此元素,则在CSS 2.1中未定义结果布局. (强调我的)
这确实是事实.但为什么呢?究竟是什么迫使任何人以这种方式设计它?你可以很容易地想到你想要的场景,比如某个东西总是从页面顶部降低25%,但是很难想出为什么你想要垂直填充相对于水平大小的父母.
这是我所指的现象的一个例子:
<div style="border: 1px solid red; margin: 0; padding: 0; width: 200px; height: 800px;">
This div is 200x800.
<div style="border: 1px solid blue; margin: 10% 0 0 10%;">
This div has top-margin of 10% and left-margin of 10% with respect to its parent.
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何将样式应用于空输入框?如果用户在输入字段中键入内容,则不应再应用该样式.这在CSS中可行吗?我试过这个:
input[value=""]
Run Code Online (Sandbox Code Playgroud) 我希望有人可以告诉我可能导致此错误的原因:
尝试读取或写入受保护的内存.这通常表明其他内存已损坏.
我不能真正发布代码,因为这个错误似乎被抛出应用程序的任何随机区域.应用程序将在抛出错误之前的12-48小时内运行.有时它会在一个看似随机的位置停止并抛出上述错误,其他时候整个应用程序停止并且我得到一个错误的屏幕,上面写着"有一个致命的错误...这可能是一个CLR中的错误或......"关于PInvoke或其他非相关信息的内容.发生这种情况时,所有线程都显示终止,并且没有可用的调试信息.
简而言之,这就是应用程序的作用:
它是一个完全用C#编写的多线程服务器应用程序.客户端通过套接字连接到服务器.服务器为客户端运行虚拟"环境",以便他们可以相互交互并与环境进行交互.它消耗了相当多的内存,但我没有看到它泄漏.它通常消耗大约1.5GB.我认为它没有泄漏,因为内存使用在应用程序运行的整个时间内保持相对稳定.即使客户端没有做任何事情,它也会不断运行代码来维护环境.它不使用第三方软件或其他API.此应用程序使用的唯一外部资源是套接字连接和SQL数据库连接.它运行在64位服务器上.我尝试使用.net 2.0,3.5和4在VS2008和VS2010中进行调试.
我试过关闭编译器优化和几个微软热修复.似乎没有什么能让这个问题消失.如果有人知道任何可能的原因,或某种方式来确定导致问题的原因,将不胜感激.
我试图了解对我来说似乎是出乎意料的行为:
我在容器内部有一个最大高度为100%的元素,该元素也使用了最大高度,但是,出乎意料的是,子元素溢出了父元素:
测试用例:http://jsfiddle.net/bq4Wu/16/
.container {
background: blue;
padding: 10px;
max-height: 200px;
max-width: 200px;
}
img {
display: block;
max-height: 100%;
max-width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果父级具有明确的高度,则这是固定的:
测试用例:http://jsfiddle.net/bq4Wu/17/
.container {
height: 200px;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么孩子在第一个例子中不会尊重其父母的最大身高?为什么需要明确的高度?
当用户鼠标悬停其类名为的元素时,我正在尝试应用背景颜色"reMode_hover".
但是如果元素也有,我不想改变颜色"reMode_selected"
注意:我只能使用CSS而不是javascript,因为我在某种有限的环境中工作.
为了澄清,我的目标是在悬停而不是第二个元素上着色第一个元素.
HTML
<a href="" title="Design" class="reMode_design reMode_hover">
<span>Design</span>
</a>
<a href="" title="Design"
class="reMode_design reMode_hover reMode_selected">
<span>Design</span>
</a>
Run Code Online (Sandbox Code Playgroud)
我尝试下面希望第一个定义可行,但事实并非如此.我究竟做错了什么?
CSS
/* do not apply background-color so leave this empty */
.reMode_selected .reMode_hover:hover
{
}
.reMode_hover:hover
{
background-color: #f0ac00;
}
Run Code Online (Sandbox Code Playgroud) 我有div以下css样式:
width:335px; float:left; overflow:hidden; padding-left:5px;
Run Code Online (Sandbox Code Playgroud)
当我插入div一长串文本时,它会突破到一个新行并显示所有文本.我想要的是只有一行不会换行的文本.当文本很长时,我希望这个溢出的文本消失.
我正在考虑设置高度,但似乎是错误的.
也许如果我添加与字体相同的高度,它应该工作,不会在不同的浏览器中造成任何问题?
我怎样才能做到这一点?
我想为输入元素应用一些css,我想只对未被禁用且不是提交类型的输入执行此操作,下面的css不起作用,也许如果有人可以解释我必须如何添加它.
input:not(disabled)not:[type="submit"]:focus{
box-shadow:0 0 2px 0 #0066FF;
-webkit-box-shadow:0 0 4px 0 #66A3FF;
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用内联样式的伪类?
例:
<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>
Run Code Online (Sandbox Code Playgroud)
我知道上面的HTML不起作用但有类似的东西吗?
PS我知道我应该使用外部样式表,我这样做.如果可以使用内联样式完成,我只是很好奇.
这两个都会产生错误,说它们必须是编译时常量:
void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0))
void Foo(TimeSpan span = new TimeSpan(2000))
Run Code Online (Sandbox Code Playgroud)
首先,有人可以解释为什么在编译时无法确定这些值吗?有没有办法为可选的TimeSpan对象指定默认值?
我喜欢在Perl中做这种事情:$foo = $bar || $baz分配$baz给$fooif $bar是空的还是未定义的.您还可以$foo ||= $bletch将只分配$bletch到$foo如果$foo没有定义或为空.
在这种情况下,三元运算符是乏味和乏味的.当然,PHP中有一个简单,优雅的方法?
或者是使用isset()的自定义函数的唯一答案?