标签: margin

何时在CSS中使用margin和padding

在编写CSS时,是否有一个特定的规则或指南应该用于决定何时使用margin以及何时使用padding

css margin padding

2277
推荐指数
15
解决办法
77万
查看次数

553
推荐指数
9
解决办法
24万
查看次数

子元素上的边距移动父元素

我有div()包含另一个div(孩子).Parent是body没有特定CSS样式的第一个元素.当我设置

.child
{
    margin-top: 10px;
}
Run Code Online (Sandbox Code Playgroud)

最终的结果是我的孩子的顶部仍然与父母对齐.我的父母向下移动10px,而不是让孩子向下移动10px.

我的目标DOCTYPEXHTML Transitional.

我在这里错过了什么?

编辑1
我的父母需要有严格定义的尺寸,因为它的背景必须从上到下显示在它下面(像素完美).因此,设置垂直边距是不行的.

编辑2
此行为在FF,IE和CR上是相同的.

css xhtml nested margin

387
推荐指数
7
解决办法
15万
查看次数

在Android中,如何以编程方式在dp中设置边距?

这个,这个这个线程我试图找到如何在单个视图上设置边距的答案.但是,我想知道是否有更简单的方法.我会解释为什么我宁愿不想使用这种方法:

我有一个自定义Button,扩展了Button.如果背景设置为默认背景以外的其他内容(通过调用setBackgroundResource(int id)setBackgroundDrawable(Drawable d)),我希望边距为0.如果我这样称呼:

public void setBackgroundToDefault() {
    backgroundIsDefault = true;
    super.setBackgroundResource(android.R.drawable.btn_default);
    // Set margins somehow
}
Run Code Online (Sandbox Code Playgroud)

我希望边距重置为-3dp(我已经在这里阅读如何从像素转换为dp,所以一旦我知道如何在px中设置边距,我就可以自己管理转换).但是因为这是在CustomButton类中调用的,所以父级可以从LinearLayout变为TableLayout,而我宁愿不让他得到他的父级并检查该父级的实例.我想,这也将是非常无形的.

另外,在调用时(使用LayoutParams)parentLayout.addView(myCustomButton, newParams),我不知道这是否将它添加到正确的位置(但是没有尝试过),比如一行五的中间按钮.

问题:除了使用LayoutParams之外,还有更简单的方法以编程方式设置单个按钮的边距吗?

编辑:我知道LayoutParams方式,但我想要一个避免处理每个不同容器类型的解决方案:

ViewGroup.LayoutParams p = this.getLayoutParams();
    if (p instanceof LinearLayout.LayoutParams) {
        LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)p;
        if (_default) lp.setMargins(mc.oml, mc.omt, mc.omr, mc.omb);
        else lp.setMargins(mc.ml, mc.mt, mc.mr, mc.mb);
        this.setLayoutParams(lp);
    }
    else if (p instanceof RelativeLayout.LayoutParams) {
        RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)p;
        if (_default) lp.setMargins(mc.oml, …
Run Code Online (Sandbox Code Playgroud)

layout android margin button

376
推荐指数
14
解决办法
38万
查看次数

为什么这种CSS margin-top风格不起作用?

我尝试在另一个div内的div上添加边距值.一切正常,除了最高值,它似乎被忽略了.但为什么?

我的期望:
我对预期保证金的预期:50px 50px 50px 50px;

我得到了什么:
我得到的保证金:50px 50px 50px 50px;

码:

#outer {
    	width: 500px; 
    	height: 200px; 
    	background: #FFCCCC;
    	margin: 50px auto 0 auto;
    	display: block;
}
#inner {
    	background: #FFCC33;
    	margin: 50px 50px 50px 50px;
    	padding: 10px;
    	display: block;
}
Run Code Online (Sandbox Code Playgroud)
<div id="outer">
  <div id="inner">
  	Hello world!
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

W3Schools没有解释为什么保证金的行为方式.

html css margin

309
推荐指数
8
解决办法
22万
查看次数

为什么这些内联块div元素之间存在无法解释的差距?

我有两个内嵌块div元素,它们是相同的,彼此相邻.然而,尽管边距设置为0,但两个div之间似乎有一个4像素的神秘空间.没有父div影响它们 - 发生了什么?

CSS

#container
{
    display:inline-block;
    position:relative;
    background:rgb(255,100,0);
    margin:0px;
    width:40%;
    height:100px;
}
Run Code Online (Sandbox Code Playgroud)

分问题

这就是我想要的样子:

它应该是什么样的

html css margin padding

277
推荐指数
3
解决办法
22万
查看次数

以编程方式在LinearLayout中设置边距

我正在尝试使用Java(而不是XML)创建一个LinearLayout,其中的按钮可以填充屏幕并具有边距.这是没有边距的代码:

LinearLayout buttonsView = new LinearLayout(this);
buttonsView.setOrientation(LinearLayout.VERTICAL);
for (int r = 0; r < 6; ++r) {
    Button btn = new Button(this);
    btn.setText("A");

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
    lp.weight = 1.0f; // This is critical. Doesn't work without it.
    buttonsView.addView(btn, lp);
}

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
setContentView(buttonsView, lp);
Run Code Online (Sandbox Code Playgroud)

这样工作正常,但你怎么给按钮边距,所以它们之间有空间?我尝试过使用LinearLayout.MarginLayoutParams,但是没有weight成员,所以没有用.如果你lp在它的构造函数中传递它也不起作用.

这不可能吗?因为它确实看起来,并且它不会是第一个Android布局任务,你只能用XML做.

java layout android margin view

260
推荐指数
8
解决办法
33万
查看次数

如何将SVG置于div中心?

我有一个SVG,我试图以div为中心.div的宽度为900px.SVG的宽度为400px.SVG的margin-left和margin-right设置为auto.不起作用,它只是表现为左边距为0(默认值).

有人知道我的错误吗?

css layout svg positioning margin

227
推荐指数
10
解决办法
21万
查看次数

如何禁用保证金折叠?

有没有办法完全禁用边缘折叠?我发现的唯一解决方案(名称为"uncollapsing")需要使用1px边框或1px填充.我发现这是不可接受的:无关的像素使计算变得复杂,没有充分的理由.是否有更合理的方法来禁用此边距折叠?

css margin css3 collapse

183
推荐指数
8
解决办法
10万
查看次数

如何使用代码而不是xml设置ImageView的边距

我想ImageView用边距为我的布局添加未知数量的视图.在XML中,我可以layout_margin像这样使用:

<ImageView android:layout_margin="5dip" android:src="@drawable/image" />

ImageView.setPadding(),但没有ImageView.setMargin().我认为这是顺利的ImageView.setLayoutParams(LayoutParams),但不确定该提供什么.

有人知道吗?

android margin imageview

170
推荐指数
9
解决办法
26万
查看次数

标签 统计

margin ×10

css ×6

android ×4

layout ×3

padding ×3

html ×2

view ×2

button ×1

collapse ×1

css3 ×1

imageview ×1

java ×1

nested ×1

positioning ×1

svg ×1

user-interface ×1

xhtml ×1