Saya menulis beberapa contoh untuk melihat perbedaannya, tetapi mereka menampilkan hasil yang sama untuk lebar dan tinggi.
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var div = $('.test');
var width = div.width(); // 200 px
var innerWidth = div.innerWidth(); // 200px
var outerWidth = div.outerWidth(); // 200px
var height = div.height(); // 150 px
var innerHeight = div.innerHeight(); // 150 px
var outerHeight = div.outerHeight(); // 150 px
});
</script>
<style type="text/css">
.test
{
width: 200px;
height: 150px;
background: black;
}
</style>
</head>
<body>
<div class="test"></div>
</body>
</html>
Dalam contoh ini Anda dapat melihat bahwa mereka mengeluarkan hasil yang sama. Jika ada yang tahu apa bedanya tolong tunjukkan jawaban yang sesuai.
Terima kasih.
<div>
, dan lihat apakah itu memberikan hasil yang berbeda;)Jawaban:
Apakah Anda melihat contoh ini? Sepertinya pertanyaan Anda.
Bekerja dengan lebar dan tinggi
jQuery - Dimensi
jQuery: tinggi, lebar, dalam dan luar
sumber
Seperti yang disebutkan dalam komentar, dokumentasi memberi tahu Anda apa perbedaannya. Namun secara ringkas:
sumber
width = mendapatkan lebarnya,
innerWidth = dapatkan lebar + padding,
outerWidth = dapatkan lebar + bantalan + batas dan secara opsional margin
Jika Anda ingin menguji tambahkan beberapa padding, margin, border ke kelas .test Anda dan coba lagi.
Baca juga di dokumen jQuery ... Semua yang Anda butuhkan cukup banyak di sana
sumber
Tampaknya perlu untuk memberi tahu tentang penetapan nilai dan membandingkan tentang arti parameter "lebar" di jq: (asumsikan bahwa nilai_baru ditentukan dalam unit px)
Ketiga instruksi tersebut tidak memberikan efek yang sama: karena instruksi jquery pertama mendefinisikan lebar bagian dalam elemen dan bukan "lebar". Ini rumit.
Untuk mendapatkan efek yang sama Anda harus menghitung paddings sebelumnya (asumsikan var adalah pad), instruksi yang tepat untuk jquery untuk mendapatkan hasil yang sama dengan js murni (atau parameter css 'width') adalah:
Kami juga dapat mencatat bahwa untuk:
w1 adalah lebar bagian dalam, sedangkan w2 adalah lebar (arti atribut css) Selisih yang tidak didokumentasikan ke dalam dokumentasi JQ API.
salam Hormat
Trebly
Catatan: menurut pendapat saya ini dapat dianggap sebagai bug JQ 1.12.4. Cara keluarnya adalah dengan memperkenalkan secara definitif daftar parameter yang diterima untuk .css ('parameter', value) karena ada berbagai arti di balik 'parameter' diterima, yang memiliki kepentingan tetapi harus selalu jelas. Untuk kasus ini: 'lebar dalam' tidak akan berarti sama dengan 'lebar'. Kita dapat menemukan jejak masalah ini ke dalam dokumentasi .width (nilai) dengan kalimat: "Perhatikan bahwa di browser modern, properti lebar CSS tidak menyertakan padding"
sumber
.css('width')
sama dengan.outerWidth()
(yaitu, itu termasuk perbatasan serta bantalan) saatbox-sizing: border-box;
.Setuju dengan semua jawaban yang diberikan di atas. Hanya untuk menambahkan dalam hal jendela atau prospek browser
innerWidth/ innerheight
hanya mencakup area konten jendela, tidak ada yang lain, tetapiouterWidth/ outerHeight
termasuk area konten windows dan selain itu juga mencakup hal-hal seperti bilah alat, bilah gulir, dll ... dan nilai-nilai ini akan selalu sama atau lebih besar dari nilai innerWidth / innerHeight.Semoga membantu lebih ...
sumber
Apa yang saya lihat sekarang adalah itu
innerWidth
mencakup seluruh kontenIni, jika jendela
900px
dan isinya1200px
(dan ada gulungan)innerWidth
berikan padaku1200px
outerWidth
berikan padaku900px
Benar-benar tak terduga di mataku
* Dalam kasus saya, konten tersebut terkandung dalam file
<iframe>
sumber