دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ محمدرضا هاشملو
سوال : وسط انداختن عنصر از لحاظ افقی و عمودی بصورت داینامیک
جامعه Html & CSS ایجاد شده در ۲۴ شهریور ۱۴۰۱

موضوع : وسط انداختن عنصر از لحاظ افقی و عمودی بصورت داینامیک بدون استفاده از margin یا padding

سلام وقت بخیر

چه جوری میشه یه عنصر یا متن رو بدون margin یا padding که خودمون دستی مقدار بدیم یا ترازش کنیم... وسط انداخت؟

من جستجو کردم و متوجه نشدم کد چی میگه ولی عمل میکنه

html>
<html>
<head>
<style>
.MyBox{
 transform: translate(-50%, -50%);
 position: absolute;
 right: 50%;
 left:50%;
 top:50%;
 bottom:50%;
 width:100px;
 height:50px;
 background-color:#FF5722;
 border:3px solid black;
}
style>
head>
<body>
<br><br>
<div class="MyBox">div>
body>
html>

همچنین برای اینکه یه عنصر داخل عنصر دیگه وسط باشه از همه جهات این کد رو پیدا کردم:

<style>
.test2 {
  /* margin-right: 10px; */
  text-align: center;
  width: 300px;
  height: 300px;
  background-color: red;
  border-radius: 0;
  box-shadow: none;
  color: #ebebeb;
  position: relative;
}
.test2 p{
  margin: 0;
  position: absolute;
  top:50%;
  left: 50%;
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
style>
<body>
<div class="test2"> <p>warning!p> div>
body>

ممنون میشم توضیح بدید بیشتر ویژگی transform و دلیل position دادن رو نفهمیدم

درود

اجازه بدید اول درمورد وسط چین کردم توضیح بدم خدمت تون:

برای وسط چین در حالت افقی از دو ویژگی vertical-align و text-align استفاده میشه. هردو مشابه هم هستند منتها دومی فقط روی متن اعمال میشه و اولی روی تمامی المانها اعم از تصویر و...

برای وسطچین عمودی معمولا از پدینگ بالا و پایین استفاده میشه.

اما درمورد کدهای بالا:

در هر دو اومده نسبت به المان مادر، با ویژگی transform متن رو شیفت یا تکان داده (50 درصد از المان مادر که میشه دقیقا وسطش) و نمایش داده. برای همین هردو کار میکنه. در اولی چون پرنت همون صفحه بوده (my box مستقیم توی تگ بادی نوشته شده و درون div دیگری نیست) از پوزیشن absolute استفاده کرده و در دومی چون تگ p درون یک div گذاشته شده، پوزیشن رو releative درنظر گرفته. درمورد پوزیشن هم اتفاقا جلسه یازدهم آموزش کامل توضیح داده ... پیش برید انشالله کامل متوجه میشید.

برقرار باشید.

بهترین پاسخ
نازنین کریمی مقدم ۲۷ شهریور ۱۴۰۱، ۰۴:۴۹

ممنون بابت پاسختون

فقط خاصیت transform و translate رو فک کنم دقیق نفهمیدم کارش چی بوده؛ اون تو جلسات بعد گفته میشه؟؟

و همین که نفهمیدم چرا نوشته -50% (منفی گذاشته قبلش)

و اینکه اون top و left و ... که هر کدوم رو ۵۰% گذاشته به تنهایی کار نمیکنه اگه transform نباشه ولی نبودش هم مشکل ایجاد میکنه

محمدرضا هاشملو ۲۷ شهریور ۱۴۰۱، ۰۸:۲۶

خواهش میکنم

اون دو تا خاصیت برای جابجایی استفاده میشه، بله در ادامه دوره با تمامی اینها آشنا میشید.

اون پدینگها باید باشند چون براساس اونها جابجایی رو انجام داده و مثلا منفی پنجاه گذاشته (منفی نشانه جهت هست نه اندازه)

فعلا این بخش رو رها کنید، هر زمان که با این ویژگیها آشنا شدید برگردید و مجددا کد رو مطالعه کنید. به خصوص که کار غیرمعمولی انجام داده. معمولا وسط چین با همون پراپرتیهایی که کامنت قبلی گفتم انجام میشه و با ترنسفورم انجام دادنش خیلی کار درستی نیست.

نازنین کریمی مقدم ۲۸ شهریور ۱۴۰۱، ۰۴:۲۰