小编Bry*_*ing的帖子

为什么有些浮动元素决定清除它们?

首先,此示例仅适用于支持:nth-childChrome或FireFox 的浏览器.我有一个无序列表,其中奇数编号列表项向左浮动并向左清除,偶数编号列表项向右浮动并向右清除.像这样:

HTML:

<ul class="waterfall">
    <li style="height: 100px;">1</li>
    <li style="height: 200px;">2</li>
    <li style="height: 50px;">3</li>
    <li style="height: 100px;">4</li>
    <li style="height: 200px;">5</li>
    <li style="height: 50px;">6</li>
    <li style="height: 50px;">7</li>
    <li style="height: 50px;">8</li>
</ul>?
Run Code Online (Sandbox Code Playgroud)

CSS:

.waterfall {width:302px;}

.waterfall LI {
    min-width: 150px;
    background-color: #CCC;
    margin-top: 2px;
}
.waterfall LI:nth-child(odd) {
    float: left;
    clear: left;
    text-align: right;
}
.waterfall LI:nth-child(even) {
    float: right;
    clear: right;
    text-align: left;
}?
Run Code Online (Sandbox Code Playgroud)

这是小提琴.

目标:

所有奇数编号的列表项应浮动到左侧并堆叠在一起,除了2px边距之外没有间隙.偶数编号列表项也是如此,除非它们应该向右浮动.

问题简而言之:

我很困惑为什么,在这个例子中,LI#5不能出现在LI#4之上,LI#8不能出现在LI#7之上.换句话说,为什么LI#5清算LI#2,LI#8清算LI#5?另外,为什么LI#3不清楚LI#2(我不想要它,但如果LI#5正在清除LI#2,为什么LI#3不参加聚会)?

TL; DR

到目前为止,我的想法有些不确定.如果第一个元素稍后在标记中定义,则浏览器似乎不希望元素的顶部出现在另一个元素的顶部之上.真的吗?

我知道浮动元素被放置在一条线上,并且任何不适合该线的浮动元素将跳转到一条新线并从那里流动(与绝对定位元素的自由流动概念相反).换句话说,浮动元素从文档流中移除,但不完全像绝对定位元素那样,因为浮动元素仍然相对于它开始的任何行定位,并且它仍占用文档流中的空间.那么,浮动元素悬挂的下一个"线"如何确定?在这个例子中,为什么LI#3不清除LI#2,而LI#5是?

我不想要的:

一个聪明的解决方案,通过更改标记,放弃浮动或使用JavaScript来使此布局工作.我知道如何做到这一切.我只是希望受到漂浮的神秘方式的教育.

html css

6
推荐指数
1
解决办法
217
查看次数

如果语法错误,PHP嵌套

我有一个与嵌套if语句有关的奇怪语法问题.

此代码错误:

if(true):
    if(true){
        var_dump(true);
    }
else:
    var_dump(false);
endif;
Run Code Online (Sandbox Code Playgroud)

此代码没有错误(注意添加;):

if(true):
    if(true){
        var_dump(true);
    };
else:
    var_dump(false);
endif;
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

php

2
推荐指数
1
解决办法
946
查看次数

如何使用Backbone.js中的set方法更改默认模型属性

我在模型中有一些defults数据

window.AppState = Backbone.Model.extend({
  defaults: function() {
    return {
      country:  false,
      region: false
    };
  }
});

var appState = new AppState();
Run Code Online (Sandbox Code Playgroud)

然后在路由器I中获取具有模型新值的数组,如下所示:

[["country", "new country value"], ["region", "new region value"]]
Run Code Online (Sandbox Code Playgroud)

现在在for循环中我循环更新所有收到的参数...我就是这样认识的

appState.attributes[arg] = val;
Run Code Online (Sandbox Code Playgroud)

但我认为还不清楚,因为在Backbone.js的文档中我读到了"属性"方法,并看到:"请使用set更新属性而不是直接修改它们." 所以我的问题是:如何使用set方法更改默认值的属性?

javascript backbone.js

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

包含JS文件的替代方法

这个问题是这个问题的后续问题.

如果某些浏览器下载JS文件,即使用户已禁用JS,使用JS包含JS文件是否有意义,以确保用户不必被迫不必要地下载JS?

例如:

function inc(filename){
    var body = document.getElementsByTagName('body').item(0);
    script = document.createElement('script');
    script.src = filename;
    script.type = 'text/javascript';
    body.appendChild(script);
}
Run Code Online (Sandbox Code Playgroud)

我在这里找到了上面的代码.

这段代码有什么缺点吗?我还没有测试它以确保它正常工作,但它似乎非常简单.

我试图避免多个HTTP请求加上代码的下载足迹强制用户明显不想要它.

此外,如果用户在最初加载网站后启用了JS,这将如何工作?

这甚至重要吗?是否值得关注?

javascript browser download include

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

在jQuery onClick上,递增一个PHP变量?

我有一个这样的链接:<a href="javascript:window.print();">Print</a>.我试图在点击它时增加一个PHP变量.技术上我可以通过提交表单来实现,但我确信有一种更简单的方法.有任何想法吗?

javascript php jquery

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

标签 统计

javascript ×3

php ×2

backbone.js ×1

browser ×1

css ×1

download ×1

html ×1

include ×1

jquery ×1