尽管像<div>s 这样的元素通常会增长以适应其内容,但使用该float属性可能会给 CSS新手带来惊人的问题:如果浮动元素具有非浮动父元素,则父元素将崩溃.
例如:
<div>
<div style="float: left;">Div 1</div>
<div style="float: left;">Div 2</div>
</div>Run Code Online (Sandbox Code Playgroud)
此示例中的父div 不会展开以包含其浮动的子项 - 它似乎具有height: 0.
我想在这里创建一个详尽的解决方案列表.如果您了解跨浏览器兼容性问题,请指出它们.
浮动父母.
<div style="float: left;">
<div style="float: left;">Div 1</div>
<div style="float: left;">Div 2</div>
</div>Run Code Online (Sandbox Code Playgroud)
优点:语义代码.
缺点:您可能并不总是希望父级浮动.即使你这样做,你是否漂浮了父母的父母,等等?你必须浮动每个祖先元素吗?
给父母一个明确的高度.
<div style="height: 300px;">
<div style="float: left;">Div 1</div>
<div style="float: left;">Div 2</div>
</div>Run Code Online (Sandbox Code Playgroud)
优点:语义代码.
缺点:不灵活 - 如果内容更改或浏览器调整大小,布局将中断.
在父元素中添加"spacer"元素,如下所示:
<div>
<div style="float: left;">Div 1</div>
<div style="float: left;">Div 2</div>
<div …Run Code Online (Sandbox Code Playgroud)Coda Hale的文章"如何安全地存储密码"声称:
bcrypt内置了盐来防止彩虹表攻击.
他引用了这篇论文,其中说在OpenBSD的实现中bcrypt:
OpenBSD从arcfour(arc4random(3))密钥流生成128位bcrypt salt,并使用内核从设备时序收集的随机数据进行种子处理.
我不明白这是如何工作的.在我的盐概念中:
当我使用带有bcrypt的Devise(一个Rails登录管理器)时,数据库中没有salt列,所以我很困惑.如果盐是随机的并且没有存储在任何地方,我们如何可靠地重复散列过程?
简而言之,bcrypt如何内置盐?
我正在使用phpMyAdmin建立一个数据库.我有两个表(foo和bar),在主键上编入索引.我试图foo_bar在它们之间创建一个关系表(),使用它们的主键作为外键.
我创建了这些表作为MyISAM,但后来将这三个都改为InnoDB,因为我读到MyISAM不支持外键.所有id领域都是INT(11).
当我选择的foo_bar表中,单击"查看相关"链接,并尝试设置FK列是database.foo.id和database.bar.id,它说:"没有定义的索引!" 在每一栏旁边.
我错过了什么?
为简单起见,我想继续使用phpMyAdmin.我目前正在使用XAMPP,这很容易让我专注于PHP/CSS/Javascript,它附带了phpMyAdmin.
此外,虽然我还没有能够设置显式外键,但我确实有一个关系表,可以执行这样的连接:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
Run Code Online (Sandbox Code Playgroud)
如果不在数据库中明确定义FK,我会感到很不舒服.
我最近从SVN搬到了Git,对某些事情感到有些困惑.我需要通过调试器运行以前版本的脚本,所以我做了git checkout <previous version hash>并做了我需要做的事情.
现在我想回到最新版本,但我不知道它的哈希.当我输入时git log,我看不到它.
我怎样才能做到这一点?此外,是否有更简单的方法来更改版本,而不是键入哈希 - 类似"返回两个版本"或"按时间顺序排列最近"?
最近的一条推文包含了这段JavaScript代码.
有人可以一步一步解释其中发生的事情吗?
> function dis() { return this }
undefined
> five = dis.call(5)
Number {[[PrimitiveValue]]: 5}
> five.wtf = 'potato'
"potato"
> five.wtf
"potato"
> five * 5
25
> five.wtf
"potato"
> five++
5
> five.wtf
undefined
> five.wtf = 'potato?'
"potato?"
> five.wtf
undefined
> five
6
Run Code Online (Sandbox Code Playgroud)
特别是,我不清楚:
dis.call(5)是Number带有某种[[PrimitiveValue]]属性的,但结果five++和five * 5看起来只是普通的数字5和25(不是Numbers)five.wtf属性在five++增量后消失five.wtf属性在five++ …我正在从Ruby脚本输出一组编号的文件.这些数字来自递增计数器,但为了使它们在目录中很好地排序,我想在文件名中使用前导零.换一种说法
file_001 ...
代替
file_1
在将数字转换为字符串时,是否有一种简单的方法可以添加前导零?(我知道我可以"如果少于10 ......如果少于100").
GROUP BYMySQL SELECT查询中是否可以有多个列?例如:
GROUP BY fV.tier_id AND 'f.form_template_id'
Run Code Online (Sandbox Code Playgroud) 我在Rails 3应用程序中使用Devise,但在这种情况下,用户必须由现有用户创建,该用户确定他/她将拥有哪些权限.
因此,我想要:
我怎样才能做到这一点?
目前,我通过以下方式有效地删除了这条路线devise_for :users:
match 'users/sign_up' => redirect('/404.html')
Run Code Online (Sandbox Code Playgroud)
这有效,但我想有更好的方法,对吧?
正如Benoit Garret所说,在我的情况下,最好的解决方案是跳过创建注册路线,并创建我真正想要的那些.
为此,我首先运行rake routes,然后使用输出重新创建我想要的.最终结果如下:
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
Run Code Online (Sandbox Code Playgroud)
注意:
:registerable在我的User模型devise/registrations 处理更新电子邮件和密码删除默认Devise路径的路由; 即:
devise_for :users, path_names: {
sign_up: ''
}
Run Code Online (Sandbox Code Playgroud) 在迁移到PDO之前,我通过连接字符串在PHP中创建了SQL查询.如果我得到数据库语法错误,我可以回显最终的SQL查询字符串,在数据库上自己尝试,并调整它直到我修复错误,然后将其放回代码中.
准备好的PDO语句更快,更好,更安全,但有一件事困扰我:我从未看到最终查询,因为它被发送到数据库.当我在Apache日志或我的自定义日志文件中出现语法错误时(我在catch块中记录错误),我看不到导致它们的查询.
有没有办法捕获PDO发送到数据库的完整SQL查询并将其记录到文件中?