我有以下代码片段(需要在全屏模式下查看),我试图将<main>元素直接放置在<header>元素下方。我将 置于<header>固定位置,因为我希望当用户滚动元素中的内容时它保持在屏幕顶部<main>。我已经尝试了我所知道的一切,但我能想到的最好的方法是将<header>元素放置在元素之上<main>,这会切断大部分内容。
我想出的最接近的解决方案是在<main>元素上放置一个猜测的顶部填充,这样它就会清除<header>. 然而,这个解决方案并不能很好地考虑各种屏幕尺寸,因为我使用的是 rem 尺寸而不是 px。<header>当将多个元素放置在使用相对或基于百分比的高度的内部时,顶部填充的想法会变得更糟。在一种屏幕尺寸上,所有内容都可能完美排列,而在不同的屏幕尺寸上,内容可能会相差很大。
最后,我知道我可以使用 jQuery 动态设置顶部填充,但它似乎并不总是那么有效。想知道是否有一个纯 css/html 解决方案。
谁能告诉我我在这里缺少什么?我的顶部填充方法是唯一可行的解决方案吗?
$(document).ready(function() {
$('#navToggle').click(function() {
$("div#bottom-container > nav").slideToggle();
});
$(window).resize(function() {
if(window.innerWidth >= "751") {
$("header > div#bottom-container > nav").show();
}else {
$("header > div#bottom-container > nav").hide();
}
});
$("header > div#bottom-container > nav > ul > li > a").click(function(e) {
if (window.innerWidth <= "750") {
if ($(this).siblings().size() > 0) …Run Code Online (Sandbox Code Playgroud)我发现了一个相当奇怪的问题,我想我知道如何解释; 我只是不知道如何解决它!
我有一个div#container(一个div为100%min-height(IE的高度))的页面,包含一个标题,一个"页面内容"和一个页脚.div#container的背景图像应该是固定的(不是固定位置,但background-attachment: fixed滚动时会使图片跟随).
问题是,当固定附件添加到CSS中的background-tag时,背景图片现在位于div之外.
CSS如下:(没有background-attachment: fixed;)
div#container {
position:relative;
width:900px;
margin:0 auto;
background-color: #ccffff;
background-image: url("pics/sign.jpg");
background-repeat: no-repeat;
background-position: right top;
height:auto !important;
height:100%;
min-height:100%;
}
Run Code Online (Sandbox Code Playgroud)
margin:0 auto;是以div为中心!important,第一个height:是让IE忽略那个特定的高度标签.如果min-height: 100%应该工作,这是必需的.
当我添加这个...
div#container {
position:relative;
width:900px;
margin:0 auto;
background-color: #ccffff;
background-image: url("pics/sign.jpg");
background-attachment: fixed; //This is what is added to the code-sample
background-repeat: no-repeat;
background-position: right top;
height:auto !important;
height:100%;
min-height:100%;
}
Run Code Online (Sandbox Code Playgroud)
......背景图片正在移动到div之外.让我解释一下:背景图像中唯一可见的部分是仍在内部,<div id="container">但图像的一部分移动到div之外,现在看不见了.
当背景图像被修复时,背景图像被部分隐藏,移动到div之外.图像位于浏览器窗口的右上角,而不是div的右上角. …
是否有一个简单,高效的Map实现,允许地图使用内存限制.
我的用例是我想动态分配创建时可用的大部分内存,但我不希望OutOFMemoryError在将来的任何时候.基本上,我想使用这个地图作为缓存,但我想避免繁重的缓存实现,如EHCache.我的需求很简单(最多一个LRU算法)
我应该进一步澄清我的缓存中的对象是char[]或类似的原语,它们不会保存对其他对象的引用.
我可以为每个条目设置最大大小的上限.
我一直在尝试确定在C#中使用fixed语句对于包含固定数组的托管不安全结构的真正成本.请注意我不是指非托管结构.
具体来说,有没有理由避免下面的'MultipleFixed'类显示的模式?简单地修复数据的成本是非零,接近零(==成本类似于在进入/退出固定范围时设置和清除单个标志),还是足够重要以避免在可能的情况下?
显然,这些课程是为了帮助解释这个问题而设计的.这是针对XNA游戏中的高使用率数据结构,其中此数据的读/写性能至关重要,因此如果我需要修复数组并将其传递到任何地方,我会这样做,但如果没有任何差别我我更喜欢将fixed()本地保留在方法中,以帮助保持函数签名对于不支持不安全代码的平台更加轻松.(是的,它的一些额外的咕噜声代码,但不管它需要......)
unsafe struct ByteArray
{
public fixed byte Data[1024];
}
class MultipleFixed
{
unsafe void SetValue(ref ByteArray bytes, int index, byte value)
{
fixed(byte* data = bytes.Data)
{
data[index] = value;
}
}
unsafe bool Validate(ref ByteArray bytes, int index, byte expectedValue)
{
fixed(byte* data = bytes.Data)
{
return data[index] == expectedValue;
}
}
void Test(ref ByteArray bytes)
{
SetValue(ref bytes, 0, 1);
Validate(ref bytes, 0, 1);
}
}
class SingleFixed
{
unsafe void SetValue(byte* data, int index, … 是否可以修复元素相对于父div而不是浏览器窗口的位置?
说我有:
<div id="pagecontainer">
<div id="linkspage">
<div class="sidelinks">
<a href="#page1" class="link">Link 1</a>
<p>
<a href="#page2" class="link">Link 2</a>
<p>
<a href="#page3" class="link">Link 3</a>
<p>
<a href="#page4" class="link">Link 4</a>
<p>
</div>
<div class="linkscontent">
content of links page
</div>
</div>
//OTHER PAGES
</div>
Run Code Online (Sandbox Code Playgroud)
基本上是一个包含两个部分的页面,左侧部分是链接列表,而右侧部分是页面的内容.我希望内容可滚动,但链接保持固定到父#pagecontainer,这样当#pagecontainer滚动时它们不会滚动,但是当我滚动整个浏览器窗口时它们会移动.
我已经尝试过JQuery"fixto"插件:https://github.com/bbarakaci/fixto.但我不能使用那个,因为我的页面淡入/淡出,当父元素(#pagecontainer)的alpha为0时,脚本会出错,它认为父元素已经消失,无处可修复.
谢谢.
我有一个大于页面宽度的标题,所以我不能用它将position:fixed他设置在页面顶部,因为我绝对需要能够水平滚动.我认为没有针对此的CSS解决方案.
我做了一个代码示例来尝试重现效果position:fixed,但是有不希望的跳转.我的代码如下:
$(window).scroll(function() {
var y = $(window).scrollTop();
$("#headertable").css('top', y+175);
});
Run Code Online (Sandbox Code Playgroud)
有没有办法让它真正附加,比如position:fixed?(奇怪的是,它现在在IE中比在FF中更好地显示,因为它没有这种"跳跃"效果)
请在此处找到一个示例:http://jsbin.com/eyuya/7.第一个表是position:fixed,另一个使用我的代码.如果有解决方案,这是我试图避免的跳跃效应.
编辑:
仍然没有找到一个令人满意的解决方案,我想我最终将使用它,因为该网站意味着在IE上使用它似乎不存在将div附加到视口的奇迹解决方案,并且能够水平滚动.如果有人遇到这个问题之前我找到一个很好的解决方案,我就会开始赏金.
感谢那些已经尝试回答这个问题的人并不像看起来那么简单问题;)
在各地搜索了这个问题的解决方案,并试图使用一些像jQuery Way-points这样的插件,没有任何成功,我希望这里的某个人能够为此提供解决方案.
由于用文本解释有点复杂,我创建了一个行为图.
请参阅此链接,因为垃圾邮件过滤器不允许我发布和图像:

根据内容,所有元素都具有可变高度.
侧边栏比页面内容短得多,
一旦侧边栏div的底部进入视口,
它将保持固定在该位置,而其余内容将继续正常滚动.
直到侧边栏到达页脚,它将正常向上滚动页脚.
当用户向与页面顶部相反的方向滚动时,这也可以反向工作.
编辑
未使用的cmp指令会导致NullPointerException.
什么是这些奇怪的cmp [ecx],ecx指令在我的C#代码中做什么?
原始帖子(下面有更多编辑)
我试图理解JIT编译代码的方式.
在内存中我有一个3 char字段.在c ++中比较两个这样的字段我可以这样做:
return ((*(DWORD*)p) & 0xFFFFFF00) == ((*(DWORD*)q) & 0xFFFFFF00);
Run Code Online (Sandbox Code Playgroud)
MSVC 2010将生成类似这样的内容(来自内存):
1 mov edx,dword ptr [rsp+8]
2 and edx,0FFFFFF00h
3 mov ecx,dword ptr [rsp]
4 and ecx,0FFFFFF00h
5 cmp edx,ecx
Run Code Online (Sandbox Code Playgroud)
在C#中,我试图弄清楚如何尽可能地接近它.我们有很多1,2,3,4,5,6,7,8字节字段组成的记录.我已经在c#中测试了很多不同的方法来构建一个更大的结构,使用这些大小的较小结构来表示记录.我对汇编代码不满意.现在我正在玩这样的事情:
[StructLayout(LayoutKind.Sequential, Size = 3)]
public unsafe struct KLF3
{
public fixed byte Field[3];
public bool Equals(ref KLF3 r)
{
fixed (byte* p = Field, q = r.Field)
{
return ((*(UInt32*)p) & 0xFFFFFF00) == ((*(UInt32*)q) & 0xFFFFFF00);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我有两个问题.问题一是编译器生成了很多无用的代码:
fixed …Run Code Online (Sandbox Code Playgroud) 我应该如何使用CSS:
我希望有两个divs或更多它们width应该在percent,但在这个例子中,div之间的边距应该是固定的30px

对我来说问题是两个div之间的余量,因为我可以把div放到一个更大的div中,并将左右填充设置为30px,这没关系,但是我应该怎么做两个div之间的边距?
如果我尝试添加例如第一个div,margin-right:30px;那么div 的宽度70% + 30px将是总体上大于100%而第二个div将下降.
那么这个解决方案是什么?
我想有一个固定大小的字符串类.理想情况下,接口将匹配std::string新接口永远不会分配新内存的一个区别.对于应该避免分配新内存的应用程序情况,它应该是一个方便的类.大小可以是静态的(在编译时已知).
我认为有两种方法.第一个是围绕char数组实现一个类,然后实现或多或少的所有函数std::string.我还必须实现一些运算符来创建std::string具有给定固定大小字符串的s等.
第二种方法,我甚至不确定是否可能,将继承std::string and覆盖可能改变字符串大小的所有函数.我查看了basic_stringVisual Studio中的标题,它似乎不是虚拟的,所以我想这不是要走的路.
您认为实施此类课程的最佳方法是什么?