我正在开发一个移动网络应用程序.这是从上到下的主要结构:标题div,菜单div,内容div,页脚div.标题,菜单和页脚是常量,页面使用ajax加载到内容div中.
有些页面有很多内容,他们填写页面,因此需要滚动.有些页面只有一两行内容,所以它们留下了一个很大的空白部分(不一定是不同的页面 - 例如,一页显示订单列表,你可以没有订单,你可以有数百......).
这就是我想要实现的:如果页面内容不完整,页脚将位于页面底部.如果页面已满并且需要滚动,则页脚将紧跟在内容之后(因此您向下滚动页面,最后到达页脚).
粘性页脚解决方案对我不利,因为我不希望页脚总是粘在底部,只有当页面没有内容时.
反正有没有实现这一目标?谢谢.
在我们的代码中,我们使用stl和MFC容器.我遇到过一个我们有一个CArray对象的情况,其中每个对象都包含一个std :: vector.
在向CArray添加多个对象之后,CArray中的数据将在达到最大大小时重新分配和复制,看起来内部向量已损坏.当我遍历CArray并且每个对象遍历std :: vector时,我得到一个"vector iterator not dereferencable"错误.
我查看了MFC代码,并在重新分配后使用memcpy()复制数据.在std :: vector(我使用visual studio)中有一个名为_Myproxy的成员,它有一个名为_Mycont的成员,它似乎改变了它在新向量中的值(由memcpy()复制的向量).
我复制了这个问题,我附上下面的示例代码.
我可以重构这段代码,我可能会这样做,但我想知道到底发生了什么.
#include "stdafx.h"
#include <vector>
#include <iostream>
// an object which holds an std::vector
class test_t
{
public:
test_t() {}
~test_t()
{
std::cout << "d'tor" << std::endl;
}
void add(int i)
{
m_vec.push_back(i);
}
void print()
{
for (std::vector<int>::iterator it = m_vec.begin(); it != m_vec.end(); ++it)
{
int i = *it;
std::cout << i << std::endl;
}
std::cout << std::endl;
}
private:
std::vector<int> m_vec;
};
void …Run Code Online (Sandbox Code Playgroud)