小编And*_*ndy的帖子

.row在Bootstrap中的目的是什么?

根据Bootstrap的文档

行必须放在.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)

html css twitter-bootstrap twitter-bootstrap-3

5
推荐指数
1
解决办法
3663
查看次数

Slim Framework中的依赖注入 - 将Container传递给您自己的类

我已经对这个帖子做过评论,但似乎已经死了所以我开了一个新的:依赖注入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.

php slim

5
推荐指数
1
解决办法
5894
查看次数

.form-group 内的 Bootstrap 底部对齐按钮

我有如下标记,在水平线上显示 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)

肯定有人希望按钮与表单元素的底部对齐 - 以一条漂亮的直线 - …

html css twitter-bootstrap

5
推荐指数
1
解决办法
1万
查看次数

艺术指导和分辨率切换的 HTML 实现之间的差异(响应式图像)

我已阅读以下文章https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images和许多类似的资源。

我不明白为什么 - 从编程的角度来看 - Art DirectionResolution Switching之间有什么区别。对两者给出的解释不同,用于解决问题的 HTML 也是如此。引自文章:

艺术指导:您想要为不同布局提供裁剪图像的问题......这可以使用<picture>元素来解决。

和:

分辨率切换:您希望将较小的图像文件提供给窄屏设备的问题,因为它们不需要像桌面显示器那样的大图像 这可以使用矢量图形(SVG 图像)以及srcsetsizes属性来解决。

假设我有一个“横向”横幅,例如 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)

html css responsive-design

5
推荐指数
1
解决办法
1101
查看次数

DataTables 正在 Bootstrap 3.3.7 应用程序中使用 ajax 源数据更改列的宽度

我的应用程序正在使用:

  • 数据表 1.10.16
  • 引导程序3.3.7
  • jQuery 3.2.1

设想:

我正在尝试将表单输入添加到表格的标题中,以允许按两列进行搜索。这是我的应用程序的自定义功能;它不是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。 …

html css datatables twitter-bootstrap-3

5
推荐指数
1
解决办法
6656
查看次数

在回调中使用ajax,其中父进程本身依赖于ajax调用

我正在使用一个使用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)

javascript ajax jquery

5
推荐指数
1
解决办法
211
查看次数

使用服务器端处理时未显示数据表加载消息

我已经阅读了使用数据表加载消息

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 请求正在进行时显示一条消息 - 例如“正在加载数据...”。

所以上一个 …

jquery datatables

5
推荐指数
1
解决办法
8258
查看次数

CakePHP 3中的自定义配置文件

我有一个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)

php configuration cakephp cakephp-3.0 cakephp-3.3

4
推荐指数
1
解决办法
2576
查看次数

Docker 并指定目标操作系统

读过

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 程序和可执行文件。

这是否意味着您需要在 LinuxWindows 机器上分别安装 Docker才能执行此操作,还是可以在您的 Docker 映像中指定任何操作系统并让任何机器运行它?

请有人解释一下 - 或者是否 - Docker 如何为您的应用程序指定特定的操作系统?

docker

4
推荐指数
1
解决办法
2853
查看次数

jQuery-使用.done()、. then()和.when()以给定顺序发出Ajax请求

我一直在阅读有关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.phpr3.phpr1.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)

javascript ajax jquery

4
推荐指数
1
解决办法
3042
查看次数