小编Sam*_*ody的帖子

为什么父元素不包含保证金?

当具有边距的元素包含在另一个元素中时,父元素不会始终包装该边距.

很多事情会导致父母包裹孩子的边缘:

  • 边界:固体;
  • 位置:绝对的;
  • 显示:内联块;
  • 溢出:汽车

(这只是来自小型测试,毫无疑问还有更多.)

我认为这与折叠边距有关,但是:

  1. W3C规范页面没有此类行为的描述.
  2. 这里没有重叠的边距.
  3. 在这个问题上,所有浏览器的行为似乎都是一致的.
  4. 行为受与边距无关的触发器的影响

默认溢出的元素的逻辑是什么:auto应该包含与溢出设置为auto的材料不同的材料.

为什么除了常规div的默认行为之外的所有内容都假定父级包含保证金 - 为什么常规默认值不包括保证金?

编辑:最后的答案是W3C确实指定了这种行为,但那

  • 这些规格没有任何意义.
  • 规格混合,没有任何解释:
    • '自由边距'(触及父母顶部或底部的边距不包含在父母的内部)和
    • '折叠边距'(允许相邻边距重叠).

演示:

body {
  margin: 0;
}

div.block {
  background-color: skyblue;
}
div.inline-block {
  display: inline-block;
  background-color: lawngreen;
}
div.position-absolute {
  background-color: rgba(255,255,0,.7);
  position: absolute;
  bottom: 0;
  right: 0;
}
div.overflow-auto {
  background-color: hotpink;
  overflow: auto;
}
div.border {
  background-color: aquamarine;
  border: solid;
}

h2 {
  margin: 80px;
  width: 250px;
  border: solid;
}
Run Code Online (Sandbox Code Playgroud)

html css margin

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

供应商分支在Git

Git项目中包含第二个项目,其内容正在独立工作.

子模块不能用于较小的子模块,因为当用户尝试克隆或下载"父"时,甚至必须包含子项目.

不能使用子树合并,因为正在积极开发子项目,并且子树合并使得将这些更新合并回原始项目非常困难.

我被告知这个解决方案在SVN世界中被称为"供应商分支",并且它在Git中是如此简单,以至于甚至不需要寻址.网上有很多半生不熟的教程.

尽管如此,我似乎无法让它发挥作用.

有人可以(非常好吗?)解释我如何创建一个结构,一个项目存在于另一个项目中,并且可以从同一个工作目录开发和更新.理想情况下[或者更确切地说:如果不支持则非常重要]当客户端尝试下载"父"项目时,应该自动给他最新版本的子项目.

请不要向我解释我应该如何使用子模块或子树合并甚至SVN:Externals.这个线程是以下SO线程的产物,如果在那里错过了某些东西,请把它贴在那里.这个主题试图了解如何供应商分支机构,以及更长,更清晰,更笨拙的解释,我收到的解释会更快乐.

git version-control branch vendor-branch

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

使用Git的项目中的项目

如何设置Git项目以包含其他项目?

例如.我正在开发一个在线地图应用程序.我们开发了一个GPS工具和SF装备.我们同时开发了一个Python Geomapping脚本以及一个不同的关注点(只关心地理映射).我们自己的核心文件将两者结合在一起,并为我们需要的应用程序构建它们.

每个项目必须独立存在 - 对GPS感兴趣的人只对GPS感兴趣 - 但包含所有其他项目的"父"项目必须作为项目可访问.

我花了一些时间试图理解子模块,但它们似乎对所需的东西有太多的独立性.

此外,如果可能的话,如果每个项目都包含一个或两个重叠的脚本,那就太好了.一个Git项目是否可以包含一个不属于其"root"的文件,这样当任何一个团队更新此文件时,两者都可以受益?

这对Git有用吗?Mercurial?主持人(GitHub,Gitorious)是否重要?

我有想法为'父'使用Subversion - 忽略.git文件夹,并使用Gi​​t作为项目(忽略.svn文件夹) - 但这只是最后的手段.

编辑:

解释为什么我不想要子模块:

  1. 用户下载时,zip不包含子模块(此处此处).甚至当合作者试图设置项目时也是如此.这是一个节目塞子.
  2. 子模块被冻结 - 它们(不容易)获取正在指向的项目的最新版本.
  3. 其他原因如下面的奇妙答案和NoPugs的独白中所指出的那样.

子树合并(由Paul在下面介绍)不会这样做:很难从合并到的项目中更新[子树]源,并且该源必须位于"root"文件夹之外.该项目.作为一个Web应用程序,所有页面内部链接到其中的文件夹至关重要,并且测试和更新将直接在该文件夹中完成.(希望这对其他人来说是明确和有用的.)

仍在研究建立"远程分支",但其他想法仍然受欢迎.

git version-control git-submodules

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

将Range或DocumentFragment转换为字符串

有没有办法在W3C兼容的浏览器中获取JavaScript范围对象的html字符串?

例如,假设用户选择以下内容:Hello <b>World</b>
可以使用该Range.toString()方法将"Hello World"作为字符串.(在Firefox中,也可以使用文档getSelection方法.)

但我似乎无法找到获取内部HTML的方法.

经过一番搜索,我发现范围可以转换为DocumentFragmentObject.

但是DocumentFragments没有innerHTML属性(至少在Firefox中;没有尝试过Webkit或Opera).
这对我来说似乎很奇怪:显然应该有一些方法来访问所选项目.

我意识到我可以创建一个documentFragment,将文档片段附加到另一个元素,然后获取该innerHTML元素.
但该方法将自动关闭我选择的区域内的任何打开的标签.
除此之外,肯定有一个明显的"更好的方法",而不是将它附加到dom只是为了让它成为一个字符串.

那么,如何获取Range或DocFrag的html字符串?

javascript range tostring selection documentfragment

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

未找到Pip包 - Brewed Python

在Mac上运行与HomeBrew一起安装的Python 2.7.3.

使用PIP安装了几个包,包括virtualenv.(使用virtualenv作为示例,但没有包工作.)

当我尝试在终端中运行它们时,它失败如下:

$ virtualenv venv --distribute
-bash: virtualenv: command not found
Run Code Online (Sandbox Code Playgroud)

或者:

$ python virtualenv.py venv
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'virtualenv.py': [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

其他几点可能会有所帮助:

$ which python
/usr/local/bin/python
$ pip freeze
MySQL-python==1.2.4
...
virtualenv==1.8.4
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
$ echo $PYTHONPATH
/usr/local/lib/python2.7/site-packages:
Run Code Online (Sandbox Code Playgroud)

默认情况下,$ PYTHONPATH是空白的,我在.bash_profile中更改了它(没有帮助).VirtualEnv确实存在于该路径中.我也尝试将此路径添加到.profile $路径,但这也没有帮助,所以我删除了它.

HomeBrew Python页面上,它似乎与此有些相关,但我是Python新手,无法弄明白.花了几个小时DuckDuckGo'ing没有任何收获.

任何帮助将不胜感激.

编辑:更新以反映实际使用情况.

python macos homebrew pip virtualenv

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

安全地提供图像

一位受人尊敬的同事坚持认为在我的服务器上存储图像是不安全的,特别是如果文件结构很容易猜测(因为我们有用户创建的图像库,命名方案很容易遵循).

相反,他建议将图像存储在根目录之上,并使用fread或fputthrough为它们提供服务.

我无法弄清楚风险是什么,或者为什么在通过脚本提供服务时可以避免这些风险.
这样一个脚本的开销听起来很荒谬.

我知道在存储到服务器之前必须检查图像,为此我使用imagemagick做一个小的转换并保存到jpeg - 这应该摆脱任何渣滓,据我所知.

那么,对SO的伟大思想的问题:

  1. 使用易于遵循的路径在本地存储图像是否存在安全问题?
  2. 我使用IM安全检查图像的方法吗?
  3. 是否有理由使用PHP来提供图像?
  4. 使用PHP的开销真的很大吗?
  5. 使用CDN会在安全性方面产生影响(我不想)?
  6. 我错过了什么吗?

谢谢大家!

php security image overhead

12
推荐指数
3
解决办法
2837
查看次数

BOSH模块未启动:Ejabberd/Strophe设置问题

我试图使用内部Ejabberd网络服务器在Ubuntu 12(Linode最新版本)上使用Ejabberd设置Strophe来进行聊天.

测试网址(http-bindadmin)都有效.
JWChat有效.
Strophe抛出一个错误:

In Strophe:
RECV: <body xmlns='http://jabber.org/protocol/httpbind' type='terminate' condition='internal-server-error'>BOSH module not started</body>

In ejabberd.log:  
E(<0.468.0>:ejabberd_http_bind:1236) : 
You are trying to use BOSH (HTTP Bind) in host "admin", but the module mod_http_bind is not started in that host. 
Configure your BOSH client to connect to the correct host, or add your desired host`
Run Code Online (Sandbox Code Playgroud)

安装很简单(虽然花了很长时间才能解决这个问题):

  1. 使用sudo apt-get安装
  2. 在sudo下运行
  3. 使用内部服务器,以避免搞乱代理或设置PunJab.
  4. 在ejabberd.cfg做了改动.

对ejabberd.cfg的更改:

%% In listening ports, amended the following lines:  
{ request_handlers,  [   
   {["pub"], mod_http_fileserver},   
   {["http-bind"], …
Run Code Online (Sandbox Code Playgroud)

xmpp ejabberd strophe

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

Git:HEAD已经消失了,想把它合并成主人

reflog vs GITK http://siteroller.net/archive/images/Forums/headless%20GIT.png

顶部图像是输出:git reflog.
底部是GIT GUI(msysgit)中的GITK在查看所有分支历史时向我显示的内容.

最后几次提交没有在GIT GUI上显示.

  • 为什么他们不在GITK上展示(至少作为一个分支或什么)?
  • 如何将它们合并为主?
  • 当我检查标签0.42时,我收集了这个.为什么和主人不一样?(我在最新状态下标记了主人)
  • 当我点击推送时,为什么远程仓库声称是最新的...它不应该尝试将这些提交更新到它们所在的任何分支中吗?

第一个问题很重要 - 我想开始了解GIT的想法.在这一点上,它比逻辑更具神谕性.

如果看到之前的历史记录有所不同,那么该项目是一个[非常强大的] JS颜色选择器,可以在这里完整地查看.

git

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

如何使用Git rebase重新排序/组合提交?

在使用rebase玩了好几个小时后,回购仍然看起来与我需要的不同:

我想完成以下任务:
[其中一些在我开始搞乱rebase之前没问题:(]

  • 将顶部提交("Removed extraneous ...")移至分支关闭之前(右上方"修复#226").
  • 合并'twist/main'分支中的两个提交."逗号"和"Moved loaded ..."应该是相同的提交,我根本不需要"逗号"的提交消息.
  • 将新组合的"Move loaded"提交合并到"backup"分支中,并摆脱"扭曲".
  • 将"master"移动到现在称为"backup"的位置.
  • 那个"remote/origin/master"标签是什么意思?

在此输入图像描述

我意识到这很多,但请包括实际的GIT命令.

我不介意自己阅读和尝试,但我对结果不符合我的预期感到困惑,我真的不想意外破坏任何提交.

git rebase

6
推荐指数
2
解决办法
4055
查看次数

Firefox Opacity(Transparancy)Gradient - 淡出图像

我有一个内容元素.

元素 - 包含其内容 - 应在左侧完全不透明,在右侧完全透明.从右到左均匀分级.

由于它合并的内容和背景不固定,因此无法提前制作图像.

我知道渐变可以用作背景(-moz-linear-gradient),但这对我没有帮助 - 在这里,我需要元素本身的内容淡出.

我已经能够在IE(Alpha Mask)和Webkit(图像掩码)中做到这一点,但已经完全陷入了FF.

如果有办法,我不介意使用SVG.

请帮忙?

css firefox transparency gradient opacity

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