我想在 div 中使用 portrait images 进行图像布局,固定纵横比为 3:2。图片大小为 327x491px。
主要问题是图像之间不需要的空格。如何仅使用 HTML/CSS将图像对齐为马赛克?
HTML :
<div id="pictures1" class="_pictures1 grid">
<div class="_pictures1-01"><div style="width:125px;height: 188px; background: red;"><img src="" width="125" height="188" alt="" /></div></div>
<div class="_pictures1-02"><div style="width:192px;height: 288px;background: green;"><img src="" width="192" height="288" alt="" /></div></div>
... SO ON ...
</div>
CSS:
._pictures1 {
width: 935px; height: 490px;
margin: -26px 0 0 59px;
float: left;
top: 20%; left: 20%;
position: absolute;
border: 1px gray solid;
}
._pictures1 div {position: absolute;}
._pictures1-01 {top: 0px; left: 35px;}
._pictures1-02 {top: 200px; left: 0px;}
/* ... SO ON ... */
最佳答案
为了做出正确的回答,我首先要澄清要求:
您可以有数千种显示图像的可能性。我将制作一个简单的布局,向您展示如何构建您自己的布局。
这是一个 FANCY FIDDLE 您可以实现的目标如下所示:
代码:
body, html {
width:100%;
margin:0;
padding:0;
}
#wrap {
width:984px;
height:492px;
}
.big_col, .medium_col, .small_col{
height:492px;
float:left;
}
img {
display:block;
margin:0;
padding:0;
border:none;
float:left;
}
.big_col {
width:328px;
}
.medium_col{
width:164px;
}
.small_col{
width:82px;
}
.big_img img {
width:328px;
height:492px
}
.medium_img img {
width:164px;
height:246px;
}
.small_img img {
width:82px;
height:123px;
}<div id="wrap">
<div class="big_col">
<div class="small_img">
<img src="https://picsum.photos/id/241/328/492" alt="" />
<img src="https://picsum.photos/id/147/328/492" alt="" />
<img src="https://picsum.photos/id/258/328/492" alt="" />
<img src="https://picsum.photos/id/237/328/492" alt="" />
</div>
<div class="medium_img">
<img src="https://picsum.photos/id/356/328/492" alt="" />
<img src="https://picsum.photos/id/254/328/492" alt="" />
</div>
<div class="small_img">
<img src="https://picsum.photos/id/156/328/492" alt="" />
<img src="https://picsum.photos/id/175/328/492" alt="" />
<img src="https://picsum.photos/id/132/328/492" alt="" />
<img src="https://picsum.photos/id/197/328/492" alt="" />
</div>
</div>
<div class="big_col">
<img src="https://picsum.photos/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/210/328/492" alt="" />
<img src="https://picsum.photos/id/152/328/492" alt="" />
<img src="https://picsum.photos/id/142/328/492" alt="" />
<img src="https://picsum.photos/id/189/328/492" alt="" />
</div>
<div class="medium_col medium_img">
<img src="https://picsum.photos/id/254/328/492" alt="" />
<img src="https://picsum.photos/id/111/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/198/328/492" alt="" />
<img src="https://picsum.photos/id/201/328/492" alt="" />
<img src="https://picsum.photos/id/286/328/492" alt="" />
<img src="https://picsum.photos/id/145/328/492" alt="" />
</div>
</div>
首先:为了简单起见,假设您的图像可以有 3 种尺寸(我将图像尺寸更改为 1 px 以便于计算):
328*492px164*246px82*123px其次:由于您的图像都是肖像,并且您的容器与大图像具有相同的高度,因此您将不得不使用 492px 高度列,可以有 3 个宽度:
328px 宽,它们可以显示所有尺寸的图像328/2 = 164px 宽,它们可以显示中小图像327/4 = 82px 宽,它们只能显示小图片第三: 多少列和多少图像大小?这取决于您,您必须根据容器的总宽度和要显示的图像数量做出选择。
但是在您的 fiddle 中,容器 (._pictures1) 的宽度为 935px,这将无法通过之前选择的列宽实现。
935/82 = 11.4024...
最接近的是 82*12 = 984px 宽的容器。
您要么必须更改容器的宽度,要么更改图像和列的大小以适合您的初始宽度。
或者(剧透)你可以使用百分比,这可能是一个替代方案,特别是如果你需要你的布局具有响应性,但这可能会变得复杂,我正在努力让事情变得简单。
我相信你很好奇并且想检查一下,这里是一个示例布局
代码片段:
body, html {
width:100%;
margin:0;
padding:0;
}
#wrap {
width:100%;
}
.big_col, .medium_col, .small_col{
float:left;
}
img {
height:auto;
display:block;
margin:0;
padding:0;
border:none;
float:left;
}
.big_col {
width:25%;
}
.medium_col{
width:12.5%;
}
.small_col{
width:6.25%;
}
.small_col img{
width:100%;
}
.medium_col>img {
width:100%;
}
.medium_col .small_img img {
width:50%;
}
.big_col .small_img img {
width:25%;
}
.big_col .medium_img img {
width:50%;
}
.big_col img {
width:100%;
}<div id="wrap">
<div class="big_col">
<div class="small_img">
<img src="https://picsum.photos/id/241/328/492" alt="" />
<img src="https://picsum.photos/id/147/328/492" alt="" />
<img src="https://picsum.photos/id/258/328/492" alt="" />
<img src="https://picsum.photos/id/237/328/492" alt="" />
</div>
<div class="medium_img">
<img src="https://picsum.photos/id/356/328/492" alt="" />
<img src="https://picsum.photos/id/254/328/492" alt="" />
</div>
<div class="small_img">
<img src="https://picsum.photos/id/156/328/492" alt="" />
<img src="https://picsum.photos/id/175/328/492" alt="" />
<img src="https://picsum.photos/id/132/328/492" alt="" />
<img src="https://picsum.photos/id/197/328/492" alt="" />
</div>
</div>
<div class="big_col">
<img src="https://picsum.photos/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/210/328/492" alt="" />
<img src="https://picsum.photos/id/152/328/492" alt="" />
<img src="https://picsum.photos/id/142/328/492" alt="" />
<img src="https://picsum.photos/id/189/328/492" alt="" />
</div>
<div class="medium_col medium_img">
<img src="https://picsum.photos/id/254/328/492" alt="" />
<img src="https://picsum.photos/id/111/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/198/328/492" alt="" />
<img src="https://picsum.photos/id/201/328/492" alt="" />
<img src="https://picsum.photos/id/145/328/492" alt="" />
<img src="https://picsum.photos/id/198/328/492" alt="" />
</div>
</div>
使用钢笔、photoshop 或任何其他适合您的工具,如果您真的很厉害,您甚至可以动动脑筋在心里描绘出您想要的布局。
我设计了您在回答问题时可以看到的图像。
正如我之前所说,有很多布局可能性(列数和这些列中图像的大小)所以对于这个例子我选择了 2 个大列 1 个中列和 2 个小列
328*2+164+82*2 = 984px ( = width of container so it can fit!)
可以看到结果
此布局基于floats所以我们需要定义容器的宽度、高度、列、图像,这样它们就可以很好地彼此相邻(因为我们已经通过计算和设计考虑到了这一点,这很容易)。
body, html {
width:100%;
margin:0;
padding:0;
}
#wrap {
width:984px;
height:492px;
}
.big_col, .medium_col, .small_col{
height:492px;
float:left;
}
img {
display:block;
margin:0;
padding:0;
border:none;
float:left;
}
.big_col {
width:328px;
}
.medium_col{
width:164px;
}
.small_col{
width:82px;
}
.big_img img {
width:328px;
height:492px
}
.medium_img img {
width:164px;
height:246px;
}
.small_img img {
width:82px;
height:123px;
}<div id="wrap">
<div class="big_col">
<div class="small_img">
<img src="https://picsum.photos/id/241/328/492" alt="" />
<img src="https://picsum.photos/id/147/328/492" alt="" />
<img src="https://picsum.photos/id/258/328/492" alt="" />
<img src="https://picsum.photos/id/237/328/492" alt="" />
</div>
<div class="medium_img">
<img src="https://picsum.photos/id/356/328/492" alt="" />
<img src="https://picsum.photos/id/254/328/492" alt="" />
</div>
<div class="small_img">
<img src="https://picsum.photos/id/156/328/492" alt="" />
<img src="https://picsum.photos/id/175/328/492" alt="" />
<img src="https://picsum.photos/id/132/328/492" alt="" />
<img src="https://picsum.photos/id/197/328/492" alt="" />
</div>
</div>
<div class="big_col">
<img src="https://picsum.photos/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/210/328/492" alt="" />
<img src="https://picsum.photos/id/152/328/492" alt="" />
<img src="https://picsum.photos/id/142/328/492" alt="" />
<img src="https://picsum.photos/id/189/328/492" alt="" />
</div>
<div class="medium_col medium_img">
<img src="https://picsum.photos/id/254/328/492" alt="" />
<img src="https://picsum.photos/id/111/328/492" alt="" />
</div>
<div class="small_col small_img">
<img src="https://picsum.photos/id/198/328/492" alt="" />
<img src="https://picsum.photos/id/201/328/492" alt="" />
<img src="https://picsum.photos/id/145/328/492" alt="" />
<img src="https://picsum.photos/id/198/328/492" alt="" />
</div>
</div>
关于html - 图像的马赛克 HTML/CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221333/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
在我的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.
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我正在学习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)'
我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes
我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p