作为学习现代网络开发的一部分,我正在使用 Bootstrap 和 jQuery 制作一个示例登录页面。出于演示目的,代码已简化,仅保留 HTML 和 CSS 位。
想法是将多个 HTML 页面都放在一个页面上,每个页面都占据浏览器视口(viewport)的 100%。
部分问题是可移植设备上的内容通常不适合,因此 height:100% 不再有效,并且内容重叠。我尝试了 min-height 和 height 的各种组合,它们似乎都不起作用。
我想保持响应式设计原则,尽可能缩小内容,但保持所有内容的可读性,不重叠。
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
margin: 0;
}
#divAbout {
background-color: white;
}
#divDownload {
background-color: lightgoldenrodyellow;
}
#header {
margin: 0;
height: 50px;
position: fixed;
background-color: rgba(255, 255, 255, 0.25);
width: 100%;
}
.page {
text-align: center;
}
#divHome {
background-color: lightblue;
}
#divHomeCenter {
max-width: 700px;
background-color: rgba(255, 255, 255, 0.35);
border-radius: 20px;
padding: 10px 40px;
margin: 0 auto;
position: relative;
top: 200px;
}
#divDownloadCenter {
padding-top: 150px;
}
html,
body,
.page {
height: 100%;
}<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div id="header">
Bootstrap's header
</div>
<div id="divHome" class="page">
<div id="divHomeCenter">
<h1>My Awesome App</h1>
</div>
</div>
<div id="divAbout" class="page">
<div id="divAboutCenter">
<h1>Why This App Is Awesome</h1>
<div class="row">
<div>
<h3>Reason 1</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum arcu at ante tempor, a pretium sem posuere. In hac habitasse platea dictumst. Integer lectus odio, porttitor et libero ac, mattis commodo risus. Morbi sit amet orci lacinia, feugiat
nulla eu, tincidunt lacus. Fusce semper, neque vel iaculis mollis, lorem risus ultricies enim, quis congue metus neque a nibh. Curabitur ut turpis rutrum, volutpat odio quis, fringilla risus. Aliquam erat volutpat. Proin eget risus pretium,
malesuada risus id, feugiat magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin placerat, ex ac varius aliquet, nisl nunc finibus nisl, at finibus odio neque a nulla.
</p>
<button>Sign Up</button>
</div>
<div>
<h3>Reason 1</h3>
<p>
Nunc sed diam ac dui fringilla maximus. Mauris dignissim tincidunt nunc, vitae pulvinar nibh maximus eu. Aliquam eleifend libero non pharetra varius. Cras eleifend sagittis lectus, vel commodo mi mollis vel. Quisque tempus interdum mi, eget vulputate
ligula feugiat tincidunt. Integer et diam gravida, vulputate tortor ac, tincidunt lectus. Nunc ac nisi felis. Aliquam ac felis sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse eleifend
ex neque, at sagittis ipsum venenatis in. Vivamus ac consequat arcu. Sed sit amet risus a elit viverra venenatis sed vel ligula. Curabitur tincidunt malesuada augue at suscipit. Nam semper tristique ultrices. Sed in lorem sem.
</p>
<button>Sign Up</button>
</div>
<div>
<h3>Reason 1</h3>
<p>
Curabitur sapien nunc, rhoncus et justo nec, feugiat faucibus tellus. Sed in molestie nisi, at pretium turpis. Phasellus nulla augue, porttitor non elit sit amet, gravida auctor ante. Nulla malesuada nisl urna, sit amet facilisis magna porttitor ut. Nullam
pretium, felis et pellentesque iaculis, libero nisl venenatis est, sit amet molestie augue mi at sapien. Ut imperdiet mauris eget ultricies tincidunt. Etiam tincidunt enim justo, in gravida massa ornare sit amet. Fusce id cursus orci, vel lobortis
dui. Morbi pretium, felis eu lobortis vestibulum, erat mauris facilisis dui, et suscipit risus neque in nisi. Praesent pellentesque facilisis nisi sed tincidunt. Cras consectetur imperdiet elit, dictum tempor elit vehicula eget. Maecenas nec
ex leo. Nunc eu erat eu erat venenatis faucibus a in nulla. Sed auctor suscipit nibh id consequat.
</p>
<button>Sign Up</button>
</div>
</div>
</div>
</div>
<div id="divDownload" class="page">
<div id="divDownloadCenter">
<h1>Download The App!</h1>
<button>Download</button>
</div>
</div>
JSFiddle 上的演示:
如何在 JSFiddle 上重现问题:
只需向下滚动,您就会看到重叠的内容。
如何在 Live 版本上重现问题:
缩小浏览器高度以显示页面 1 的一半内部容器,然后向下滚动,您会看到页面 2 立即开始。
滚动前(低屏幕高度模拟 - 第 1 页不适合 100% 高度):
滚动后(第二页与 #1 重叠):
最佳答案
已更新
这是一个 updated fiddle
我更改了这些 CSS 规则
html, body {
height: 100%;
}
.page {
min-height: 100%;
}
#divAbout h1 {
margin: 0;
}
然后我注释掉了下面的内容
#divHomeCenter {
max-width: 700px;
background-color: rgba(255,255,255,0.35);
border-radius: 20px;
padding: 10px 40px;
margin: 0 auto;
position: relative;
/* top: 200px; */
}
当您在具有 position: relative; 的元素上设置 top: 200px; 时,它将将该元素向下推 200px,但将所有其他元素保留在它们最初所在的位置,这将导致被推送的元素与其他元素重叠。
关于html - 高度 100% 或更高以适应内容,没有视觉伪像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35298329/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.