Là tài sản text-align: center;
một cách tốt để tập trung hình ảnh bằng CSS?
img {
text-align: center;
}
Là tài sản text-align: center;
một cách tốt để tập trung hình ảnh bằng CSS?
img {
text-align: center;
}
Câu trả lời:
Điều đó sẽ không hoạt động vì thuộc text-align
tính áp dụng cho các container khối, không phải các phần tử nội tuyến và img
là một phần tử nội tuyến. Xem thông số kỹ thuật của W3C .
Sử dụng cái này thay thế:
img.center {
display: block;
margin: 0 auto;
}
<div style="border: 1px solid black;">
<img class="center" src ="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
text-align
cũng hoạt động tốt trên chúng.
Tôi đã xem qua bài đăng này , và nó đã làm việc cho tôi:
img {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
<div style="border: 1px solid black; position:relative; min-height: 200px">
<img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
(Căn dọc và ngang)
Một cách khác để làm điều đó sẽ tập trung vào một đoạn kèm theo:
<p style="text-align:center; border:1px solid black"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"></p>
text-align: center
có phải là một cách tốt để căn giữa hình ảnh hay không và không chỉ định rằng tài sản đó phải là một phần của thẻ img. Câu trả lời này sử dụng tài sản trong câu hỏi trong một nỗ lực để cung cấp một giải pháp (mà không hoạt động).
Bạn có thể làm:
<center><img src="..." /></center>
<center>
không được hỗ trợ trong html5, nhưng chết tiệt, nó hoạt động.
Trên thực tế, vấn đề duy nhất với mã của bạn là text-align
thuộc tính áp dụng cho văn bản (có, hình ảnh được tính là văn bản) bên trong thẻ. Bạn sẽ muốn đặt một span
thẻ xung quanh hình ảnh và đặt kiểu của nó thành text-align: center
, như vậy:
span.centerImage {
text-align: center;
}
<span class="centerImage"><img src="http://placehold.it/60/60" /></span>
Hình ảnh sẽ được căn giữa. Để trả lời câu hỏi của bạn, đây là cách dễ nhất và dễ hiểu nhất để căn giữa hình ảnh, miễn là bạn nhớ áp dụng quy tắc cho hình ảnh chứa span
(hoặc div
).
span
phần tử display: inline;
theo mặc định, vì vậy điều này gặp vấn đề tương tự như đặt text-align: center;
trên img
chính nó. Bạn phải thiết lập span
để display: block;
hoặc thay thế nó bằng một div
cho điều này để làm việc.
Có ba phương pháp để căn giữa một yếu tố mà tôi có thể đề xuất:
Sử dụng text-align
tài sản
.parent {
text-align: center;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Sử dụng margin
tài sản
Sử dụng position
tài sản
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Phương thức thứ nhất và thứ hai chỉ hoạt động nếu cha mẹ ít nhất rộng bằng hình ảnh. Khi hình ảnh rộng hơn cha mẹ của nó, hình ảnh sẽ không ở giữa !!!
Nhưng: Phương pháp thứ ba là một cách tốt cho điều đó!
Đây là một ví dụ:
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="http://imgsv.imaging.nikon.com/lineup/lens/zoom/normalzoom/af-s_dx_18-140mmf_35-56g_ed_vr/img/sample/img_01.jpg" />
</div>
img
vào bên trong một cách hợp lý div
bằng cách WebView
tiêm CSS. Cảm ơn bạn!
Chỉ khi bạn cần hỗ trợ các phiên bản Internet Explorer cổ.
Cách tiếp cận hiện đại là làm margin: 0 auto
trong CSS của bạn.
Ví dụ ở đây: http://jsfiddle.net/bKRMY/
HTML:
<p>Hello the following image is centered</p>
<p class="pic"><img src="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p>
<p>Did it work?</p>
CSS:
p.pic {
width: 48px;
margin: 0 auto;
}
Vấn đề duy nhất ở đây là chiều rộng của đoạn phải giống với chiều rộng của hình ảnh . Nếu bạn không đặt chiều rộng cho đoạn văn, nó sẽ không hoạt động, bởi vì nó sẽ giả định 100% và hình ảnh của bạn sẽ được căn trái, trừ khi bạn sử dụng text-align:center
.
Hãy thử Fiddle và thử nghiệm với nó nếu bạn muốn.
img{
display: block;
margin-right: auto;
margin-left: auto;
}
Nếu bạn đang sử dụng một lớp với một hình ảnh thì sau đây sẽ làm
class {
display: block;
margin: 0 auto;
}
Nếu nó chỉ là một hình ảnh trong một lớp cụ thể mà bạn muốn căn giữa, thì sau đây sẽ làm:
class img {
display: block;
margin: 0 auto;
}
img.class
hoặc thêm một img.class
phiên bản. Thx cho điều này.
Trên hộp chứa hình ảnh, bạn có thể sử dụng CSS 3 Flexbox để căn giữa hình ảnh một cách hoàn hảo, cả theo chiều dọc và chiều ngang.
Giả sử bạn có <div class = "container"> làm chủ sở hữu hình ảnh:
Sau đó, như CSS bạn phải sử dụng:
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
Và điều này sẽ làm cho tất cả nội dung của bạn bên trong div này hoàn toàn tập trung.
Giải pháp đơn giản nhất tôi tìm thấy là thêm phần tử này vào phần tử img của mình:
style="display:block;margin:auto;"
Có vẻ như tôi không cần thêm "0" trước "tự động" theo đề xuất của người khác. Có lẽ đó là cách thích hợp, nhưng nó hoạt động đủ tốt cho mục đích của tôi mà không có "0". Ít nhất là trên Firefox, Chrome và Edge mới nhất .
auto auto auto auto
và 0 auto
có nghĩa là 0 auto 0 auto
... và theo mặc định, tự động cho lề dưới và trên cùng là 0
vì vậy việc thêm 0 hay không hoàn toàn giống nhau trong trường hợp này khiến bạn trả lời một bản sao thứ n của những cái đã được cung cấp
auto
, auto auto
, auto auto auto
, auto auto auto auto
, 0 auto 0
, 0 auto
, 0 auto 0 auto
, và vân vân ... bạn nghĩ mỗi người xứng đáng một câu trả lời khác nhau? Tôi không nghĩ vậy.
i++
như i+=1
)
Bạn có thể sử dụng text-align: center
trên cha mẹ và thay đổi img
thành display: inline-block
→ do đó nó hoạt động giống như một thành phần văn bản và sẽ được căn giữa nếu cha mẹ có chiều rộng!
img {
display: inline-block
}
Để căn giữa một hình ảnh không nền phụ thuộc vào việc bạn muốn hiển thị hình ảnh dưới dạng nội tuyến (hành vi mặc định) hoặc thành phần khối.
Trường hợp nội tuyến
Nếu bạn muốn giữ hành vi mặc định của thuộc tính CSS hiển thị của hình ảnh, bạn sẽ cần phải bọc hình ảnh của mình bên trong một thành phần khối khác mà bạn phải đặt text-align: center;
Trường hợp của khối
Nếu bạn muốn coi hình ảnh là một thành phần khối của riêng mình, thì thuộc text-align
tính không có ý nghĩa và thay vào đó bạn nên làm điều này:
IMG.display {
display: block;
margin-left: auto;
margin-right: auto;
}
Câu trả lời cho câu hỏi của bạn:
Là thuộc tính văn bản-align: centre; một cách tốt để tập trung hình ảnh bằng CSS?
Có và không.
text-align
tính: và có thể bạn sẽ không thích hiệu ứng phụ này.Người giới thiệu
Một cách nữa để chia tỷ lệ - hiển thị nó:
img {
width: 60%; /* Or required size of image. */
margin-left: 20% /* Or scale it to move image. */
margin-right: 20% /* It doesn't matters much if using left and width */
}
display: block
với tôi margin: 0
đã không làm việc, không bao bọc với một text-align: center
yếu tố.
Đây là giải pháp của tôi:
img.center {
position: absolute;
transform: translateX(-50%);
left: 50%;
}
margin: 0 auto;
sao Điều quan trọng là thiết lập margin-left
và margin-right
để auto
. margin: 0 auto;
chỉ là một lối tắt cho điều đó.
margin: 0 auto
, margin: 0
và margin: auto
, không ai làm việc. Lưu ý rằng trong trình kiểm tra của Chrome, khi sử dụng margin: 0 auto
, sẽ đánh vào tài sản bằng dấu chấm than invalid property value
(hoặc bất cứ điều gì có nghĩa là như vậy)
relative
định vị hơn là absolute
, cả hai đều hoạt động khá tốt.
Tôi phát hiện ra rằng nếu tôi có một hình ảnh và một số văn bản bên trong a div
, thì tôi có thể sử dụng text-align:center
để căn chỉnh văn bản và hình ảnh trong một cú nhấn.
HTML:
<div class="picture-group">
<h2 class="picture-title">Picture #1</h2>
<img src="http://lorempixel.com/99/100/" alt="" class="picture-img" />
<p class="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p>
</div>
CSS:
.picture-group {
border: 1px solid black;
width: 25%;
float: left;
height: 300px;
#overflow:scroll;
padding: 5px;
text-align:center;
}
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
Đôi khi chúng tôi trực tiếp thêm nội dung và hình ảnh trên quản trị viên WordPress bên trong các trang. Khi chúng tôi chèn hình ảnh bên trong nội dung và muốn căn chỉnh trung tâm đó. Mã được hiển thị là:
**<p><img src="https://abcxyz.com/demo/wp-content/uploads/2018/04/1.jpg" alt=""></p>**
Trong trường hợp đó, bạn có thể thêm nội dung CSS như thế này:
article p img{
margin: 0 auto;
display: block;
text-align: center;
float: none;
}
Sử dụng:
<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>
Tôi nghĩ rằng đây là cách để tập trung vào một hình ảnh trong khung Laravel.