这是一个奇怪的问题,我想知道它为什么会发生..
我正在使用Yii2
框架,我创建了一个widget
来渲染来自Twitter bootstrap
的缩略图,如果需要,我已经使代码渲染了多个按钮,但是当我渲染时超过1个按钮,它们之间似乎没有任何空格,我检查了HTML
代码,看起来没问题,我甚至将视图与2个相同的代码进行了比较,一个来自PHP
,另一个来自HTML
,
它的外观如何,两者都有相同的HTML代码,但第一个是从PHP渲染的
这是HTML
代码的方式,两种情况都有相同的代码,区别在于第一个代码来自php
<div class="thumbnail">
<div class="caption">
<h3>testing</h3>
<p>Lorem ipsum dolor</p>
<p>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
</p>
</div>
</div>
<div class="thumbnail">
<div class="caption">
<h3>testing</h3>
<p>Lorem ipsum dolor</p>
<p>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
<button type="button" class="btn btn-default" name="/localhost/backend/web/site/index">Button</button>
</p>
</div>
</div>
答案 0 :(得分:1)
Php默认取消白色空格。但是,您可以通过使用&amp; nbsp。
告诉它添加空格这是语法: echo str_repeat('',1);
第一个参数将添加空格,第二个参数是您要添加的空间
您可以在回显按钮后将其放入
答案 1 :(得分:0)
我有类似的问题。尝试在按钮之间插入html注释,因为空格也有宽度。 E.g。
<input .... /><!--
--><input .... /><!--
--><input .... />
答案 2 :(得分:0)
我90%肯定这是因为css和输出的html的结合。
如果您有按钮元素css样式:display: inline-block
并且html标记之间至少有一个空格,您将获得空格(新行也计算)
with:space
<button>foo</button>
<button>bar</button>
没有空间
<button>foo</button><button>bar</button>
为什么使用php它的空格可能是因为在渲染过程中会出现空白空白
此外,如果发布的代码来自带有chrome或其他内容的inspecting the code
,那么它不是真正的代码结构。试着看右击 - &gt;源代码
可以通过以下方式解决:
将元素的css更改为display: block; float: left
- &gt;使其成为有元素的块元素。
将您的css更改为使用display: flex
- 如果您不知道,请使用Google。
删除html标记之间的空格/缩小html - 并保留display: inline-block
答案 3 :(得分:0)
通过在每个元素
之间添加regex
来解决此问题
例如,我们在foreach
的{{1}}循环中处理了多个元素,结果以字符串形式连接
php
为了让它为每个元素创建一个新行,<?php
function createButtons($data)
{
/**
* [$html Here is where the html buttons are going to be stored]
* @var string
*/
$html = '';
/**
* This will generate Html Button for each element in the array and concatenate into $html as string like this:
* <button><button><button><button>
*/
foreach($data as $button)
$html .= Html::Button($data['name'], $data['options']);
return $html;
}
是一个"\n"
代码来添加新行
regex