行必须放在
.container(固定宽度)或.container-fluid(全宽)内
和
使用行创建水平列组.
为什么这有必要?
甲.row只能占据的任一的最大宽度.container或.container-fluid
鉴于你必须关闭,.row它似乎写得更长:
<div class="container">
<div class="row">
<div class="col-md-6">
<h1>Column A</h1>
</div>
<div class="col-md-6">
<h1>Column B</h1>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h1>Column C</h1>
</div>
<div class="col-md-6">
<h1>Column D</h1>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
比这个:
<div class="container">
<div class="col-md-6">
<h1>Column A</h1>
</div>
<div class="col-md-6">
<h1>Column B</h1>
</div>
</div>
<div class="container">
<div class="col-md-6">
<h1>Column C</h1>
</div>
<div class="col-md-6">
<h1>Column D</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我已经对这个帖子做过评论,但似乎已经死了所以我开了一个新的:依赖注入Slim Framework 3
上面的帖子解释了如何将Slims Container传递给您自己编写的课程.
但是,OP已经询问是否可以将Slim转换为Dependency Inject 所有类.
我也有兴趣知道是否有办法做到这一点,因为它似乎只是DRY,如果你必须将容器传递给你想要使用它的每个类.
作为一个例子,如果我想使用Slim的一个函数(比如在我自己的一个类中进行重定向),我不能按照文档使用它:
$res->withStatus(302)->withHeader('Location', 'your-new-uri');
Run Code Online (Sandbox Code Playgroud)
因为$res(响应对象)不在我的类的范围内,除非我注入/传递它.
问题是,如果我说100个课程,我是否必须通过(或注入)容器100次?这看起来真的非常乏味.
在像CakePHP这样的框架中,您可以使用'AppController'来全局执行这样的操作,即定义一次,并使其在所有类中可用.Slim不提供此功能吗?如果没有,这是一个严重的缺点,IMO.
编辑 - 我在其中一条评论中添加此内容,尝试进一步解释问题:
如果您查看First Application Tutorial - http://slimframework.com/docs/tutorial/first-app.html - 他们正在向容器添加PDO数据库连接.
假设我在子目录中有100个单独的类(该示例具有../classes/目录)并使用在index.php中自动加载它们spl_autoload_register().容器不适用于任何类别.
如果我不得不分别传递100次,每次我使用我的一个类,只是为了得到一个PDO连接(这只是一个例子),那么这使代码非常重复,即不是DRY.
我有如下标记,在水平线上显示 3 个文本输入
<div class="form-inline">
<div class="form-group">
<label>Field 1</label>
<input id="f1">
</div>
<div class="form-group">
<label>Field 2</label>
<input id="f2">
</div>
<div class="form-group">
<label>Field 3</label>
<input id="f3">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想要一个位于“字段 3”右侧的按钮,该按钮与输入的底部水平对齐#f3。
我查看了以下内容,但这些似乎都不起作用:
我尝试过的标记在第四个中添加了按钮.form-group,然后我在上面的链接上尝试了各种方法,例如添加.align-bottom到相关的 div。
<div class="form-inline">
<div class="form-group">
<label>Field 1</label>
<input id="f1">
</div>
<div class="form-group">
<label>Field 2</label>
<input id="f2">
</div>
<div class="form-group">
<label>Field 3</label>
<input id="f3">
</div>
<div class="form-group align-bottom">
<input type="reset" value="Reset" class="align-bottom">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
肯定有人希望按钮与表单元素的底部对齐 - 以一条漂亮的直线 - …
我已阅读以下文章https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images和许多类似的资源。
我不明白为什么 - 从编程的角度来看 - Art Direction和Resolution Switching之间有什么区别。对两者给出的解释不同,用于解决问题的 HTML 也是如此。引自文章:
艺术指导:您想要为不同布局提供裁剪图像的问题......这可以使用
<picture>元素来解决。
和:
分辨率切换:您希望将较小的图像文件提供给窄屏设备的问题,因为它们不需要像桌面显示器那样的大图像 这可以使用矢量图形(SVG 图像)以及
srcset和sizes属性来解决。
假设我有一个“横向”横幅,例如 2000 * 500 像素的图像,例如http://placehold.it/2000x500
在台式机/笔记本电脑屏幕上看起来不错。但是在移动设备上它看起来不正确,因为中心的内容(在这种情况下是文本,但可能是一群人的照片)不可见。所以我想这是艺术指导问题的一个例子?但它也属于分辨率切换的范畴,因为当较小的图像可以工作时,为什么有人想要将 2000 像素宽的图像(具有大文件大小)下载到移动设备上?
因此,在执行方面,我可以使用无论是艺术指导或分辨率切换的实现来解决它?为什么我需要两种不同的解决方案来做同样的事情?
例如 -
<img srcset="banner-320w.jpg 320w,
banner-480w.jpg 480w,
banner-2000w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="banner-2000w.jpg" alt="Banner">
Run Code Online (Sandbox Code Playgroud)
这将banner-2000w.jpg在任何超过 800 像素宽的东西上使用横幅,例如台式机/笔记本电脑和不同比例的图像(解决艺术指导问题),但也可以使用不同的文件大小(解决分辨率切换问题)。
但同样的事情也可以用picture属性来完成,这篇文章将其描述为艺术指导问题的解决方案:
<picture>
<source media="(max-width: 320px)" srcset="banner-320w.jpg">
<source media="(max-width: 480px)" srcset="banner-480w.jpg">
<img src="banner-2000w.jpg" alt="Banner"> …Run Code Online (Sandbox Code Playgroud) 我的应用程序正在使用:
设想:
我正在尝试将表单输入添加到表格的标题中,以允许按两列进行搜索。这是我的应用程序的自定义功能;它不是DataTables 提供的搜索工具。
问题:
我希望搜索输入显示为每列的全宽。我希望它看起来像这样:
但它的渲染方式是这样的 - 请注意,搜索输入的宽度已减小:
(由于它是私人应用程序,因此表数据很模糊)。
我使用的标记基于 Bootstrap 的列系统 - 我使用了 2 个,.col-md-6因此<th>元素宽度相等:
<table id="regulatoryInformationTable" class="table responsive display table-striped pb-25" cellspacing="0" width="100%">
<thead>
<th class="col-md-6">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
<input type="text" class="form-control" placeholder="Search Regulation Name">
</div>
</th>
<th class="col-md-6">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
<input type="text" class="form-control" placeholder="Search Regulation Data">
</div>
</th>
</thead>
</table>
Run Code Online (Sandbox Code Playgroud)
如果我使用此标记打开页面,它将按照第一个屏幕截图进行渲染 - 但表中没有任何数据 - 因为我此时尚未发出 ajax 请求并更新 DataTable。 …
我正在使用一个使用DataTables生成HTML表的应用程序,该表由ajax请求中的数据填充.
这很简单:
var substancesTable = $('#substancesTable').DataTable({
"processing": true,
"serverSide": true,
"searching": false,
"ajax": {
"url": "/get-substances.json",
"method": "POST",
"cache": false,
"dataSrc": function (json) {
// Update non-Datatables UI elements and perform other functions based on the ajax response
$('#numSubstances').html(json.recordsTotal);
drawOptionsButton(json.isFiltering);
// Must return data for DataTables to work
return json.data;
}
},
// ...
});
Run Code Online (Sandbox Code Playgroud)
DataTables提供了一个回调,称为rowCallback(https://datatables.net/reference/option/rowCallback),它允许在绘制表格后对表格行进行后处理.这里的关键是它是在 ajax请求之后/get-substances.json ; 该表必须填充数据,因为此回调用于在该点处操作其中的数据.
在rowCallback我提供行ID的数组在我的表-也就是编号的对应于<tr>元素里面#substancesTable-我去拓展这些行.我可以通过在行ID的数组中进行硬编码来手动执行此操作,例如
var substancesTable = …Run Code Online (Sandbox Code Playgroud) 我已经阅读了使用数据表加载消息
DataTables 1.10.16 使用ajax 源数据和服务器端模式。
我的表有以下初始化代码:
var substancesTable = $('#substancesTable').DataTable({
"processing": true,
"serverSide": true,
"searching": false,
"ajax": function(data, callback){
// code for ajax request
},
"language": {
"lengthMenu": "_MENU_ per page",
"zeroRecords": "Sorry no records found",
"info": "Showing <b>_START_ to _END_</b> (of _TOTAL_)",
"infoFiltered": "",
"infoEmpty": "No records found",
"processing": '<i class="fa fa-spinner fa-spin fa-2x fa-fw"></i>'
},
});
Run Code Online (Sandbox Code Playgroud)
DataTables 正确使用了该"processing"属性 -.fa-spinner当数据准备好由 DataTables 呈现时,它会显示一个 FontAwesome 微调器 ( );当 ajax 请求完成时会发生这种情况。
但是,我想在 ajax 请求正在进行时显示一条消息 - 例如“正在加载数据...”。
所以上一个 …
我有一个CakePHP 3.3.14应用程序,我创建了2个子目录,webroot/data/downloads/和webroot/data/master
我想将这些路径放在自定义配置文件中,并在Controller中引用它们.但我看不出怎么做.
我已经按照配置文档进行了操作,但不是很清楚.
所以我做了什么:
config/my_config.php上面的文件定义了一个数组:
return [ 'downloadsPath' => 'webroot/data/downloads/', 'masterPath' => 'webroot/data/master/' ];
Run Code Online (Sandbox Code Playgroud)在config/bootstrap.php我说:Configure::load('my_config', 'default');
我如何在控制器中使用它?如果我把Configure::read('my_config.masterPath');它给出一个错误说:没有找到类'App\Controller\Configure'
如果我添加use Cake\Core\Configure;到控制器的顶部,则清除错误但返回值为null:
debug(Configure::read('my_config.masterPath')); // null
Run Code Online (Sandbox Code Playgroud) 我读过:
Docker 是用于管理和部署应用程序容器的系统,而不是操作系统容器。
但是,在一些资源中(例如大约 1:20 进入https://www.youtube.com/watch?v=pGYAg7TMmp0)它提供了一个“问题”示例,如果您在 Windows 上开发了 Web 应用程序,您可能会遇到PC 或 Mac,并将其部署到 Linux 服务器。
那么,Docker 在这种情况下如何提供帮助呢?如果我们采用一个 Web 应用程序,我知道 Docker 可以帮助您使用源代码创建一个容器,并说一个特定版本的 PHP。但是,如果它与运行 Docker 的服务器不同,您能否为它指定一个运行目标操作系统?
Docker FAQ ( https://docs.docker.com/engine/faq/ ) 说
您可以在 Docker 容器中运行 Linux 和 Windows 程序和可执行文件。
这是否意味着您需要在 Linux和Windows 机器上分别安装 Docker才能执行此操作,还是可以在您的 Docker 映像中指定任何操作系统并让任何机器运行它?
请有人解释一下 - 或者是否 - Docker 如何为您的应用程序指定特定的操作系统?
我一直在阅读有关jquery中Promises的大量文章,并在发出多个ajax请求时避免了“回调地狱”。
我觉得但即使读这一切后,有被给予使用什么没有简单的答案-来讲.done(),.then()和.when()-在链接请求的条款。
我试图构建最基本的示例来说明我的观点。下面的代码可以完全按照我的要求运行,但是它唯一依赖的是.done(),我看不到其他方法(例如.then()或.when())适合什么位置。
因此,我创建了3个PHP脚本,并使用PHP的sleep方法来人为地延迟这些脚本完成所需的时间。延迟设置如下:
r1.php - 5秒r2.php - 1秒r3.php -3秒脚本本身就是这样简单:
<?php
// r1.php
echo "starting r1.php \n";
sleep(5); // Delay execution. Varies as described above for each script
echo "ending r1.php \n";
?>
Run Code Online (Sandbox Code Playgroud)
因此,如果这些被并行运行,顺序,他们会完成会r2.php,r3.php话r1.php。
但是,如果我们想为了运行这些东西(r1.PHP, ,r2.php),r3.php并有jQuery的等待,直到每个AJAX请求之前就进入下一个做?例如,如果某物r2.php取决于r1.phpetc 的结果。
我写了以下内容-正是这样:
$(document).ready(function() {
$.ajax({
url: 'ajax/r1.php',
method: 'get'
}).done(function(response1) { …Run Code Online (Sandbox Code Playgroud) css ×4
html ×4
jquery ×3
ajax ×2
datatables ×2
javascript ×2
php ×2
cakephp ×1
cakephp-3.0 ×1
cakephp-3.3 ×1
docker ×1
slim ×1