Setting a width value based on inheritance does not function properly when using a percentage value

There are 2 div elements. The parent div has a relative position, while the child div has a fixed position.

If a fixed amount of width is applied to the parent div, using width: inherit; works flawlessly. However, when setting width: 100%; on the parent div, the child div ends up wider than its parent.

*,
*::before,
*::after {
  box-sizing: border-box;
}
.content {
  position: relative;
  background: black;
  width: 100%;
}
.fixedElement {
  position: fixed;
  width: inherit;
  background: yellow;
  z-index: 2;
  top: 0px;
}
<div class="content">
  parent
  <div class="fixedElement">
    child
  </div>
</div>

Check out this Fiddle

Is there something that I am missing in this setup?

I am considering resorting to using jQuery to adjust the child's width, although I understand that it should ideally be solvable using only css.

Answer №1

The default margin of the body causes the parent element to fill the entire width but be restricted by that margin. The fixed element, on the other hand, is not constrained by the body and spans the full width regardless of the margin.

However, it protrudes to the right of the parent because it is contained within a parent with a position: relative. To ensure both parent and child are the same size, you can add a CSS rule like this:

body {
    margin: 0;
}

This adjustment will result in the parent and child elements having equal dimensions.

Answer №2

The issue arises when you utilize the CSS properties position: fixed and top: 0, causing the child div to overlap its parent element. To resolve this, consider applying position: fixed to the parent as well, along with setting a specific top value to ensure the parent remains visible beneath the child.

Alternatively, you can rearrange the structure of the elements by swapping the positions of the parent and child, while also implementing display: inline-block for both elements.

Answer №3

To ensure that the child element inherits the width of its parent, it is recommended to use position absolute instead of fixed positioning.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Achieve alignment of span and h3 elements in one line

I'm having a bit of trouble with a simple task. I want my span and h3 elements to display on the same line, side by side. However, they are currently appearing on separate lines. Can anyone provide some guidance on how to resolve this issue? header ...

Is there a way to identify when a radio button's value has changed without having to submit the form again?

Within this form, I have 2 radio buttons: <form action='' method='post' onsubmit='return checkForm(this, event)'> <input type = 'radio' name='allow' value='allow' checked>Allow ...

Tips for downsizing a large image to fit into a smaller area

I am working on a page layout that features a small circular navigation element. However, I am facing an issue with fitting a large picture within the boundaries of this small circle without it overflowing and causing alignment problems. Does anyone have ...

Is there a more efficient method to halt a jQuery animation plugin? Surely, there must be a more effective solution

After feeling under the weather for the past week and feeling incredibly bored, I decided to delve into the world of creating jQuery plugins. In just half an hour, I managed to put together a plugin that mimics the "wiggle" effect when pressing and holding ...

Creating word spacing in CSS paired with a navigation menu using Dreamweaver

As a beginner in Dreamweaver, CSS, and HTML, I may have made some mistakes or overlooked simple solutions. I am currently struggling with how to separate words in my navigation menu, as they always appear centered. Despite trying adjustments like "word-spa ...

Animating a div in CSS3 to expand horizontally from left to right without affecting its original position

I am currently in the process of developing a calendar using HTML, CSS, and JavaScript. The main purpose of this calendar is to showcase upcoming and past events. However, I am facing difficulties in ensuring that my event blocks occupy the remaining space ...

The CSS star rating system is malfunctioning

I'm struggling to implement a rating star system in my project. I have experimented with various code snippets, but none seem to be functioning properly. Take a look at the outcome: https://i.sstatic.net/g3DvH.png ...

What is the best way to adjust the vertical margin in a vis.js timeline?

The vis.js timeline sets a margin of 5px in each row using inline styles that are controlled programmatically by the library. The height, top position, and transform of each item within the row are specified by the library as well. Attempting to manually ...

Hey there, I'm looking to use different CSS fonts on Windows and Mac for the same page on a web application. Can someone please guide me on how to accomplish this?

In order to tailor the font based on the operating system, the following criteria should be followed: For Windows: "Segoe UI" For Mac: "SF Pro" Attempts have been made using the code provided below, but it seems to load before the DOM and lacks persisten ...

What methods can be used to decrease the width of a space?

I currently have this on my website: https://i.sstatic.net/lfBum.png But I want to organize the 3 elements to look like this: https://i.sstatic.net/SwyMs.png <th class="fc-day-header fc-widget-header fc-sat" data-date="2016-10-01">DAY 1<br> ...

Navigating through the CSS menu located in the main directory

I am facing an issue with accessing my CSS menu in different directories. In my root directory, I have a CSS menu that I want to use in subdirectories as well. However, when I navigate to a subdirectory, I find it difficult to go back to the main directory ...

The grid is intended to be positioned horizontally, but is currently being shown vertically

I need help fixing the layout of my items. They are currently displaying vertically instead of in a horizontal row. Any suggestions on how to correct this? https://i.stack.imgur.com/CQ4yG.jpg <div class="col-lg-12 col-sm-12 portfolio-item"> <d ...

js The correct value is not being set to the div's style.top

function gamestart(){ var gr; var gr = true; console.log(gr==true); if(gr == true){ console.log("we have activated pointer key detection dear Mr.ketsebaot") document.onkeydown = checkk; } } function checkk(e){ cons ...

Leverage the power of Bootstrap by showcasing several carousels in a sleek grid layout

How can I display dynamically generated carousels in a grid format using Bootstrap4? Current formation: https://i.sstatic.net/H3du7.png I want to showcase multiple carousels containing one or more images in a clean grid layout instead of the current hor ...

Having trouble loading my Twitter feed

Having trouble displaying the Twitter timeline in my web browser. Even though I'm using the original code from the Twitter publish website, it's not showing up properly. Initially, the timeline appeared correctly but after refreshing the site wit ...

The daterangepicker reigns supreme above all other elements

Just a heads up, I am utilizing daterangepicker from this link: . Recently, I encountered an issue where the input field was overlapping with other elements like bootstrap Modals or menus. <div class="col-md-3 form-group"> <div class=&qu ...

CSS is altering the background color to a slightly modified tint from its original shade

After uploading a high-definition image as a background, I noticed that in the DOM the file appeared to have a slightly greener tint than the original. However, upon inspecting the image background element and saving it again, it saved with the original ti ...

bootstrap modal dialog displayed on the edge of the webpage

I am facing an issue with a modal dialog that pops up when clicking on a thumbnail. The JavaScript code I used, which was sourced online, integrates a basic Bootstrap grid layout. The problem arises when half of the popup extends beyond the edge of the pa ...

What is the best way to arrange div elements in this particular manner using CSS?

Wanting to create a specific layout for my website by positioning some divs in a unique way and adding content to them, I have been focusing on responsive design. I am wondering if it is possible to position these divs while ensuring responsiveness. The de ...

What is the best way to create a mobile menu transition that moves in a "reverse" direction?

I have been working on animating a mobile menu where the three stripes transform into an 'X' when clicked and revert back to three stripes when closed. The transition to an 'X' is working perfectly, but when closing the menu, it jumps b ...