在手机上查看我的页面时,我有以下布局
当视口(viewport)较大时(即 md),我想反转两者。比如:
我认为我可以通过考虑“移动优先”来做到这一点
<div class="row">
<div class="col-xs-12 col-md-4">first guy</div>
<div class="col-xs-12 col-md-8"> second guy
<div class="col-xs-12 col-md-push-12">A</div>
<div class="col-xs-12 col-md-pull-12">B</div>
</div>
相反,这似乎将列偏移到容器的左侧和右侧,例如
-*- AB -*-
这里很难说明,但不是切换行位置(因为它们每个大小都是 12),而是偏移到它们包含元素的外部(应该是 col-md-8)
最佳答案
如果您打开 Bootstrap 的未压缩 CSS,这是学习如何使用框架的第二个最佳方法,第一个是 LESS 和/或 SCSS,您会看到推拉在 12 列内工作,而不是在全宽元素。这些类仅分别改变相对位置向左或向右。
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
当您打开网格的 LESS mixin 时,您会看到它们没有从推拉或偏移中删除 col-12-X,但它们未被使用。
Bootstrap 不是 CSS,它是一个使用 CSS 的框架。它不会为每种布局场景或每种情况提供类。 GetBootstrap.com 本身、所有展示网站以及地球上几乎每个主题或支持 Bootstrap 的网站都使用自定义 CSS。实际上,您必须学习 CSS 才能充分利用框架。
当前和旧版浏览器都支持的另一种方式是在父级上使用 display:table,在要更改顺序的子级上使用 display:table-caption。 在这里查看 dfsq 的回答
https://stackoverflow.com/a/27432782/1004312
如果您打算将响应式图像与 display:table 一起使用,请确保您的图像具有 width:100%(参见 css 示例),因为 max-width:100% 不适用于表格内的图像。
目前,仅使用 CSS 的现代方式是使用 flexbox 在使用媒体查询的给定断点处按您想要的顺序放置元素。现代浏览器支持 Flexbox。
http://caniuse.com/#feat=flexbox -- 查看当前支持
另一种方法是在调整大小/加载时使用 jQuery insertBefore 或 insertAfter(无论需要什么)。
以上所有这些方法都是客户端的。
另一种方式,当内容复杂时,这是我的首选方式,是使用服务器端代码(例如 php-mobile-detect)并在需要时提供完全不同的 html,尤其是当内容不合适时(就像吓坏了的大图像)用于小型设备。
HTML:
<h2>Table Caption</h2>
<div class="table-wrap">
<section class="content-Y">
<h2>A</h2>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</section>
<section class="content-X">
<h2>B</h2>
<form action="#" method="post" role="form">
<div class="form-group">
<label for="name">Text Input:</label>
<input type="text" name="name" class="form-control" id="name" value="" tabindex="1" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-default" value="Submit" />
</div>
</form>
</section>
</div>
CSS
/* table caption */
/* https://stackoverflow.com/questions/27432398/vertical-order-grid-in-bootstrap */
.content-X,
.content-Y {
border: 1px solid red;
margin: 0 0 10px 0;
}
@media (min-width: 768px) {
.table-wrap {
display: table;
}
.table-wrap img {width:100%;height:auto;}
.content-X {
display: table-caption;
}
}
HTML
<h2>Flexbox</h2>
<div class="flex-wrap">
<section class="content-2">
<h2>A</h2>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</section>
<section class="content-1">
<h2>B</h2>
<form action="#" method="post" role="form">
<div class="form-group">
<label for="name">Text Input:</label>
<input type="text" name="name" class="form-control" id="name" value="" tabindex="1" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-default" value="Submit" />
</div>
</form>
</section>
</div>
CSS
.content-1,
.content-2 {
border: 1px solid red;
margin: 0 0 10px 0;
}
@media (min-width:768px) {
.flex-wrap {
display: -moz-box;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-moz-box-orient: vertical;
-webkit-box-orient: vertical;
-webkit-flex-flow: column;
-ms-flex-direction: column;
flex-flow: column;
}
.content-1 {
-moz-box-ordinal-group: 1;
-webkit-box-ordinal-group: 1;
-webkit-order: 1;
-ms-flex-order: 1;
order: 1;
}
.content-2 {
-moz-box-ordinal-group: 2;
-webkit-box-ordinal-group: 2;
-webkit-order: 2;
-ms-flex-order: 2;
order: 2;
}
}
HTML
<h2>jQuery InsertBefore</h2>
<div class="content-A">
<h2>A</h2>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</div>
<div class="content-B">
<h2>B</h2>
<form action="#" method="post" role="form">
<div class="form-group">
<label for="name">Text Input:</label>
<input type="text" name="name2" class="form-control" id="name" value="" tabindex="1" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-default" value="Submit" />
</div>
</form>
</div>
CSS
.content-A,
.content-B {
border: 1px solid red;
margin-bottom: 10px;
}
jQuery:
$(window).on("resize", function() {
if($(window).width() >= 768) {
$(".content-B").insertBefore($(".content-A"));
} else {
$(".content-A").insertBefore($(".content-B"));
}
}).resize();
*注意:使用网格系统时不需要.col-xs-12。最后一个最小宽度以下的任何内容都将是 100% 宽度。
全宽元素不需要网格系统,为自己节省一些额外的包装。*
关于html - 在 Bootstrap 中重新排序行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311260/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda