bootstrap 网格_在10分钟内使用Salvattore和Bootstrap构建动态网格

bootstrap 网格

Salvattore自称为jQuery Masonry替代品,但有一个重要区别:它使用CSS配置而不是JavaScript。 这些网格可以在网上看到,也许最有名的是在Pinterest上 。

今天,我们将Salvattore与Twitter Bootstrap 3结合使用,以构建出令人赞叹的流动网格结构。

入门:您需要的

首先,你需要抓住Salvattore JavaScript库( 精缩或源 )。 接下来,您需要链接Twitter BootstrapCSS。 我们将直接从NetDNA的BootstrapCDN借用而不是下载和托管我们自己的副本。

<html> 
    <head> 
        <link rel="stylesheet" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 
        <title>Salvattore + Bootstrap</title> 
    </head> 
    <body> 
    
    <!-- This is where the magic happens! --> 
    
    <script src="salvattore.js"></script> 
    
    </body> 
</html>

一旦完成,就可以开始配置Salvattore了!

接下来,您将在标题中使用外部样式表或<style type='text/css'>标记。 我们的大部分工作将在样式表中完成。

注意 :必须包含type和rel属性,Salvattore才能正常工作。

快速启动网格入门

Twitter Bootstrap提供了强大, 灵活的网格结构 ,该结构专注于自底向上的媒体查询。 让我们看一看常见的列行。

<div class="row"> 
    <div class="col-xs-12 col-md-4"></div> 
    <div class="col-xs-6 col-sm-3 col-md-4"></div> 
    <div class="col-xs-6 col-sm-3 col-md-4"></div> 
    <div class="col-xs-12 col-sm-3 col-md-4"></div> 
    <div class="col-xs-6 col-md-4"></div> 
    <div class="col-xs-6 col-md-4"></div> 
</div>

您会在上面的标记中注意到col-[size]-[column number] 。 使用xs , sm , md和lg可用大小,我们可以为不同的断点设置不同的列大小,而无需编写特定的媒体查询。 看一下这个示例 , 该示例显示列如何在不同的屏幕宽度下移动。

引导面板

我们将使用Bootstrap的面板组件创建一个流动的网格。 创建面板的标记是这样构建的:

<div class="panel panel-primary"> 
    <div class="panel-heading">Panel heading without title</div> 
    <div class="panel-body">Panel content</div> 
</div>

将其与Salvattore Magic结合在一起

现在我们有了所需的Bootstrap零件,我们将把它们与Salvattore放在一起。 现在,我们将从六个空白面板开始; 稍后,我们将为每个面板提供一些动态内容。

为了使Salvattore正常工作,我们的网格容器需要一个data-columns属性。 这是我们当前的标记外观:

<div id="grid" data-columns> 
    <div class="panel panel-primary"> 
        <div class="panel-heading">Panel heading without title</div>
        <div class="panel-body"> Panel content </div> 
    </div> 
    
    <!-- repeat the panel as many times as you'd like --> 
    
</div>

接下来,我们将转到样式表,并通过伪元素添加以下标签:

@media screen and (min-width: 1px) and (max-width: 767px){
    #columns[data-columns]::before {
        content: '2 .col-xs-6';
    }
}
@media screen and (min-width:768px) and (max-width: 991px){
    #columns[data-columns]::before {
        content: '3 .col-sm-4';
    }
}
@media screen and (min-width:992px) and (max-width: 9999px){
    #columns[data-columns]::before {
        content: '4 .col-md-3';
    }
}

我们选择的断点直接映射到Bootstrap的媒体查询。 Salvattore使用::before伪元素和content属性定义所创建列的类,然后尝试将元素均匀地拆分为这些列。

使其动态

到目前为止,我们一直严格限制CSS内的内容,但是如果您想加倍努力,JavaScript可以提供一些帮助。

Salvattore通过提供附加功能使事情更进一步。 通过这些功能以及与API的连接(我们使用Google的Book API通过Ernest Hemingway提取图书),我们可以构建一个动态网格。 这是我们将使用JavaScript:

function append(title, content) {
    // build/select our elements
    var grid = $('#columns')[0];
    var item = document.createElement('div');
    // build the html
    var h = '<div class="panel panel-primary">';
    h += '<div class="panel-heading">';
    h += title;
    h += '</div>';
    h += '<div class="panel-body">';
    h += content;
    h += '</div>';
    h += '</div>';
    salvattore['append_elements'](grid, [item])
    item.outerHTML = h;
}
$.getJSON("https://www.googleapis.com/books/v1/volumes?q=inauthor:Ernest+Hemingway&callback=?", function (data) {
    $(data.items).each(function (i, book) {
        append(book.volumeInfo.title, book.volumeInfo.description);
    });
});

注意:需要jQuery

首先,我们创建一个append函数,该函数获取标题和内容,并将其包装在面板标记中。 然后,我们使用salvattore['append_elements'](grid, [item])函数将该项添加到网格中。 最后,我们运行AJAX调用以提取动态数据。

为了使其正常工作,我们将希望删除网格固定器中的所有内容。

<div id="grid" data-columns></div>

Salvattore将为我们填写列。

我们的最终标记如下所示:

<!DOCTYPE html>

<html>
<head>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
    <style type="text/css">
        @media screen and min-width 1px and max-width 767px {
            #columns[data-columns]::before {
                content: '2 .col-xs-6';
            }
        
        }
        
        @media screen and min-width768px and max-width 991px {
            #columns[data-columns]::before {
                content: '3 .col-sm-4';
            }
        
        }
        
        @media screen and min-width992px and max-width 9999px {
            #columns[data-columns]::before {
                content: '4 .col-md-3';
            }
        
        }       
    </style>

    <title></title>
</head>

<body>
    <div class="container">
        <h1 class="col-xs-12">Books by Ernest Hemingway</h1>

        <div data-columns="" id="columns">
            <div></div> 
            <div></div> 
            <div></div>          
        </div>
    </div>
    
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="salvattore.js"></script>
    <script>
        function append(title, content) {
            var grid = document.querySelector('#columns');
            var item = document.createElement('div');
            var h = '<div class="panel panel-primary">';
            h += '<div class="panel-heading">';
            h += title;
            h += '</div>';
            h += '<div class="panel-body">';
            h += content;
            h += '</div>';
            h += '</div>';
            salvattore['append_elements'](grid, [item]) item.outerHTML = h;
        }
        $.getJSON("https://www.googleapis.com/books/v1/volumes?q=inauthor:Ernest+Hemingway&callback=?", function (data) {
            $(data.items).each(function (i, book) {
                append(book.volumeInfo.title, book.volumeInfo.description);
            });
        });
    </script>
</body>
</html>

结论

对于不了解JavaScript的人, Salvattore可以非常轻松地创建动态的Masonry风格的网格。 用少量JavaScript来创建动态网格和动态内容是一件容易的事。 最后,Bootstrap提供了灵活的类命名结构,可以轻松地为任何断点构造网格。

翻译自: https://webdesign.tutsplus.com/tutorials/build-a-dynamic-grid-with-salvattore-and-bootstrap-in-10-minutes--cms-20410

bootstrap 网格

前端项目-salvattore.zip 前端项目-salvattore,带有CSS驱动配置的jquery砌体替代方案 立即下载

相关推荐

LTspice基础教程-028.Timestep too small

Q: “Timestep too small” error message A: If the LTspice program can’t find a solution for the guessed time step, then the program decreases the time step and tries again. This can’t work forever. If...

gaoyong_wang的博客 2万+

JS瀑布流插件 -- salvattore

说两句 今天是腊八,腊月初八。老辈子腊八这天会把家里的粮食柜子翻出来,把各种谷物豆类都凑到一起熬粥,其实也不一定是8种,总是自己喜欢什么口味就放什么东西,样数不厌其繁,多多益善,在文火上直熬3个小时才喝,非常的好喝。 以前这一天是生意人一年封账的时候,把账目算清楚,债主会通知欠债人还钱。做生意欠账不丢人,账期是由来已久的,中国三角债问题是文化,并不是坏事,其实在以前是基于人文信用体

cuipy的博客 1780

手把手教你用MATLAB和PSIM搞定Buck电路控制器:从传递函数到运放电路实战

本文详细介绍了如何使用MATLAB和PSIM协同设计Buck电路控制器,从传递函数推导到运放电路实现的完整流程。通过小信号建模、波特图分析和双平台仿真验证,帮助电力电子工程师解决理论到实践的转化难题,提升Buck电路控制器设计的效率和可靠性。

weixin_29271053的博客 269

如何5分钟部署高并发茅台预约自动化系统:完整技术指南与实战方案

在茅台酒供不应求的市场环境下,传统手动预约方式效率低下且成功率有限。Campus-iMaoTai是一款面向技术开发者和系统管理员的茅台预约自动化系统,通过智能调度算法和多用户管理功能,帮助用户实现茅台酒的自动化预约。该系统采用微服务架构设计,支持容器化部署,为需要批量预约茅台的用户提供了一套完整的技术解决方案。 ## 系统架构深度解析:微服务驱动的智能调度引擎 Campus-iMaoTai的核

gitblog_00047的博客 361

蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)

天再高又怎样,踮起脚尖就更接近阳光。 满满的 题型总结​ 历年真题​ 视频讲解​ 比赛技巧 题型总结 2021 2020 2019 2018 2017 2016 2015 2014 2013 ...

m0_58367586的博客 11万+

YOLOv8推理程序

YOLOv8单独推理,有时候我们自定义的模块算子无法正常转换为其他框架,而且需要做成应用,因此需要一个单独推理的程序,返回的是识别后的照片还有各个类别及其对应数量。文章最后给出Flask封装为Server以及调用的实例还有Client请求代码,支持几十路多线程并发,只需加载一次模型,后边推理即可。

AIOT魔法师 698

循环神经网络入门:easy-tensorflow教你处理序列数据的核心技巧

循环神经网络(RNN)是处理序列数据的强大工具,在自然语言处理、时间序列预测等领域有着广泛应用。easy-tensorflow项目提供了简单全面的TensorFlow教程,本文将带你快速掌握RNN的核心概念与实战技巧,从零开始构建能够处理序列数据的神经网络模型。 ## 一、什么是循环神经网络? 循环神经网络是一种特殊的神经网络结构,其核心特点是能够处理序列数据并记忆先前信息。与传统神经网络不同

gitblog_00167的博客 452

外部PLC触发VisionMaster多流程运行

上一讲,介绍了海康VisionMaster与西门子PLC1200进行S7通信。在前一讲的基础上,讲解如何通过PLC触发,实现VisionMaster的多流程运行。

haier123888的博客 4653

Geist字体终极指南:为你的数字项目注入现代设计灵魂

在当今数字时代,字体选择不仅仅是美学问题,更是影响用户体验和产品专业度的关键因素。Geist字体家族——由Vercel与Basement Studio、Andrés Briganti联合打造的现代开源字体解决方案,正成为设计师和开发者的首选工具。这套包含Geist Sans无衬线字体、Geist Mono等宽字体和Geist Pixel像素字体的完整家族,专为清晰度、简洁性和功能性而生,完美适配从

gitblog_00989的博客 876

YOLOv12涨点改进 | 全网独家首发Conv改进篇 | Arxiv 2025 | 引入一种新的WConv加权卷积改进YOLOv12,显著提升其特征提取能力和目标检测精度

本文提出了一种新型加权卷积(WConv)模块,通过引入最优密度函数动态调整邻域像素权重,显著提升了YOLOv12目标检测性能。WConv在保持参数数量不变的情况下,提高了模型精度(VGG准确率提升10%)、增强了小目标检测能力,并改善了多尺度特征提取。文中详细介绍了模块原理、网络结构改进方法,并提供了核心代码实现和yaml配置文件。实验表明,该方法在图像任务中最高可降低53%的损失,虽然会带来11%的时间开销,但具有优异的鲁棒性。该技术可广泛应用于2D/3D图像处理领域。

Ai缝合怪、助力小伙伴高效发论文 215

YOLOv8【第十章:多任务扩展深度篇·第1节】YOLOv8-Seg 实例分割:Mask原型生成与系数预测原理解析!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1811

Bootstrap网格系统(grid)

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,通过行row、列col的组合和嵌套进行布局。

记录和分享属于我的“IT”时光。 726

【OpenClaw企业级智能体实战】第32篇:政企版OpenClaw安全落地指南——奇安信55页报告深度拆解与实战

2026年Q2,OpenClaw(俗称“龙虾”)安全风险集中爆发,公安部、工信部等监管机构密集发声,23万公网暴露实例、155个高危漏洞让企业“养虾”安全压力骤增。奇安信发布的55页《政企版龙虾安全使用指南》,以“看得清、管得住、用得好”为核心,构建了“端-网-云”三层防护体系。本文深度拆解这份报告的九大安全面与三大趋势,全景扫描奇安信、腾讯、360等头部厂商安全方案,提炼企业最低安全基线与实操配置,通过金融机构虚拟案例演示落地全流程,提供从资产摸底、规范制定到工具部署的完整解决方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 572

5个步骤掌握UI-TARS:开源多模态AI桌面助手实战指南

UI-TARS-desktop是一个基于视觉语言模型的GUI Agent桌面应用,让你能够通过自然语言指令控制计算机。通过本指南,你将学会如何快速部署这个开源多模态AI助手,并深入理解其核心架构与最佳实践。 ## 1. 项目概览与价值主张 UI-TARS-desktop是TARS多模态AI Agent Stack的重要组成部分,它将前沿的视觉语言模型(VLM)技术直接带到你的桌面环境中。与传统

gitblog_00084的博客 376

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Bootstrap基本模板

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个met

weixin_44197120的博客 798

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

3分钟掌握res-downloader:解锁全网视频音乐资源下载新姿势

还在为心爱的视频无法保存而烦恼吗?还在为会员歌曲下载受限而苦恼吗?今天我要为大家介绍一款功能强大的跨平台资源下载神器——res-downloader。这款基于Go语言开发的资源下载工具,通过智能嗅探技术,让你轻松获取微信视频号、抖音、快手、小红书、QQ音乐等主流平台的音视频资源,操作简单到连技术小白都能快速上手。 ## 🔍 核心功能解析:从基础到专业 ### 🎯 智能资源嗅探技术 res

gitblog_00370的博客 559

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

bootstrapCDN和本地化

  因为公司网络环境较差和自己是菜鸟的原因,很简单的事情折腾了不少时间。测试开发的网页时候 更新速度总是很慢,这跟使用bootstrapCDN有关系,因为每次更新,它都要重新访问cdn.bootstrap.com一遍,所以需要响应时间。如果网络速度快当然,不需要本地化,否则还是本地化资源文件,不必去忍受每一次响应很长时间。 只是为了测试自己开发的某小功能而本地化的。如果网站上线,那...

weixin_34085658的博客 358

Salvattore:CSS 驱动的 jQuery Masonry 插件

  Salvattore 是一个 jQuery 砌体的替代,使用 CSS 驱动的配置。Salvattore 根据您指定的列数组织你的 HTML 元素。容器中的每一个项目会一个接一个被放置在列内,只需要简单地添加一个 data-columns 属性。   在你的 CSS 文件中,你可以设置你想为元素创建的列数。要创建一个具有响应性的柱状设计,只需使用媒体查询。项目附加在同一容器的前面,不会发生冲突...

weixin_34319111的博客 188

Bootstrap布局之网格系统

为了让两个相邻的列元素有一定的间隔,除了给元素设置外边距以外,还可以通过Bootstrap中提供的列偏移功能来实现。第3行中,第1列向右偏移了3列,第2列向右偏移了3列,但是偏移列和显示列的总和超过了12列,所以显示到下一行。依此类推,col-md- 为中型设备列的前缀,col-lg-为大型设备列的前缀,col-xl- 为超大型设备列的前缀。(2)col-sm-*为列,表示占了*号列的宽度,值可以是1~12。●列使用样式.col-*-*,创建一组列并且只有列可以作为行的直接子元素。网格系统前缀--案例。

qq_66198247的博客 2589

Bootstrap CDN资源

来源:http://getbootstrap.com/getting-started/#migration-dropped rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> rel="stylesheet" href="//netdna.bootstr

每天进步一点点 7003

BootstrapCDN和本地化

一、搭建bootstap环境 可以用bootstrap的CDN服务,在<link href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <script src="//cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script> <script s

lovoo的博客 5131

Bootstrap——网格布局

什么是网格? 网格布局的列数最多可以分为12列 如果要列数大于12则会另起一行补齐多余的列数 如果份数相加小于12则会铺不满整个宽度 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <...

NanChen的博客 1223

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 140

React 性能:memo / useMemo / useCallback

讲清 memo/useMemo/useCallback 的配合与边界,先测量再优化,避开常见过早优化。

JudithHuang的博客 327

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346
上一篇: 性能增强:如何使用in-view.js加载图像
下一篇: 使用Photoshop设计时尚的时间轴投资组合页面
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值