2017-02-16 3 views
0

Вот мой код:Как я могу уменьшить значение маржи ширины?

div{ 
 
     border: 1px solid red; 
 
     height: 20px; 
 
    } 
 
    span{ 
 
     display: table; 
 
     border: 1px solid green; 
 
     height: 10px; 
 
     width: 100%; 
 
     margin-left:20px; 
 
    }
<div> 
 
    <span></span> 
 
</div>

Как вы видите, зеленый коробка из красной коробки в правой части. это из-за 20px margin left, который применяется к красному ящику.

Как я могу сохранить и этот запас и зеленый ящик в красную коробку?


Примечание: Большинство пользователей моего веб-сайта использовать старые браузеры. Поэтому я не хочу использовать calc().

+0

Просто удалите 'ширина: 100%' –

+0

@MuhammadUsman Я отредактировал мой вопрос. В текущей версии удаление 'width' не дает ожидаемого результата. –

+0

Ну, мой вариант не для вашей текущей версии. Однако удалите «margin-left» из дочернего элемента и добавьте «padding-left» в parent. Также добавьте 'box-sizing: border-box'. –

ответ

0

Попробуйте это.

div{ 
 
    border: 1px solid red; 
 
    height: 20px; 
 
    padding-left: 20px; 
 
} 
 
span{ 
 
    display: table; 
 
    border: 1px solid green; 
 
    height: 10px; 
 
    width: 100%; 
 
}
<div> 
 
    <span></span> 
 
</div>

0

Use inherit;

div{ 
 
    border: 1px solid red; 
 
    height: 20px; 
 
} 
 
span{ 
 
    display: block; 
 
    border: 1px solid green; 
 
    height: 10px; 
 
    width: inherit; 
 
    margin-left:20px; 
 
}
<div> 
 
    <span></span> 
 
</div>

+0

Какая разница, если 'width' вообще не используется? –

+0

спасибо ..но извините, я неправильно написал свойство display в моем вопросе. Я отредактировал его. Пожалуйста, взгляните на него еще раз. –

+0

@MuhammadUsman width по умолчанию автоматически, если не указано, что означает, что он растет и сжимается в соответствии с количеством элементов в нем. – Laazo

1

Удалить width: 100%:

div{ 
    border: 1px solid red; 
    height: 20px; 
} 
span{ 
    display: block; 
    border: 1px solid green; 
    height: 10px; 
    margin-left:20px; 
} 
+0

спасибо .. но извините, я написал свойство 'display' неправильно в моем вопросе. Я отредактировал его. Пожалуйста, взгляните на него еще раз. –

1

Просто удалите ширина

div{ 
 
    border: 1px solid red; 
 
    height: 20px; 
 
} 
 
span{ 
 
    display: block; 
 
    border: 1px solid green; 
 
    height: 10px; 
 
    margin-left:20px; 
 
}
<div> 
 
    <span></span> 
 
</div>

+0

спасибо .. но извините, я написал свойство 'display' неправильно в моем вопросе. Я отредактировал его. Пожалуйста, взгляните на него еще раз. –

1

Помогает ли это?

div{ 
 
     border: 1px solid red; 
 
     height: 20px; 
 
    } 
 
    span{ 
 
     display: block; 
 
     border: 1px solid green; 
 
     height: 10px; 
 
     width: auto; 
 
     margin-left:20px; 
 
     margin-right:20px; 
 
    }
<div> 
 
    <span></span> 
 
</div>

-1

Может быть, это привычка подходит, поскольку я модифицирования больше, чем я должен, но может быть полезно ...

Если отобразить участок как блок, а не как таблицу и изменить свою маржу для безводной позиции, вы можете добиться того, что ищете, но это может повлиять на отношение этих предметов к их окружающей среде.

div { 
 
    border: 1px solid red; 
 
    height: 20px; 
 
    position: relative; 
 
} 
 

 
span { 
 
    display: block; 
 
    border: 1px solid green; 
 
    height: 10px; 
 
    position: absolute; 
 
    left:20px; 
 
    right: 0px; 
 
    top: 0px; 
 
    bottom: 0px 
 
}
<div> 
 
    <span></span> 
 
</div>

+0

Читайте, пожалуйста, он хочет таблицу – Teshtek

+0

Он редактировал свой пост, сначала был дисплей: block, now is display: table, он хочет таблицу – Teshtek

Смежные вопросы