Safari isn't recognizing the :focus-within pseudo-class

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    #my-button:focus-within {
      color: red;
    }
  </style>
</head>
<body>
  <button id="my-button" tabindex="0">item2</button>
</body>
</html>

Upon clicking the button, the text changes to a vibrant shade of red. It has been successfully tested in Chrome and Firefox, but Safari (version 15.6.1) seems to present some issues.

What could be causing this compatibility problem?

Answer №1

It appears that the :focus-within pseudo-class may not work with buttons in Safari; however, there is a workaround available:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    #my-li:focus-within > #my-button {
      color: red;
    }
  </style>
</head>
<body>
  <ul>
    <li id="my-li" tabindex="0">
      <button id="my-button">item2</button>
    </li>
  </ul>
</body>
</html>

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

Angular noticed a shift in the expression once it was verified

Whenever I try to invoke a service within the (change) action method, I encounter this issue: ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ng-untouched: true'. Cur ...

Exploring Checkbox Handling in AngularJS and ng-Grid

In my AngularJS application, I am using ng-grid to display data retrieved from a server. One of the fields, "Active," is boolean and I have created a template to show it as a checkbox: $scope.gridOptions = { data: 'myData', enableCellSelection: ...

Preserve the timestamp of when the radio query was chosen

I'm interested in finding a way to save the user's selected answer for a radio button question and track the time they saved it. Is there a way to achieve this using HTML alone? Or would I need to utilize another coding language or package? Just ...

What is the best approach for looping through nested structures in Go?

When I attempt to iterate over a list of data enclosed in Curl brackets, I receive an error message stating "Range Can't iterate over....list of data." The struct I am working with is as follows: type FamilyMembers struct { XMLName xml.Name ...

Function: get the next item from an HTML POST form and register it as undefined when submitted

Encountering a problem with my form - trying to enter a website address/keyword along with a selected filter. The filters are dynamically updated from the database, hence only one option is currently displayed <div class="add-website-content"& ...

Pair of buttons triggering the submission of a form

I'm encountering an issue where I have 2 buttons in my form, one for submitting and one for going to the previous page, but both seem to be performing the same action. How is this happening? <div style="position:fixed; left: 50px; ...

Activating automatic HTML5 video playback for mobile browsers

Some believe that html5 videos cannot autoplay on mobile browsers. Surprisingly, I came across a website that was able to autoplay a video (without looping) on mobile: What is the secret behind this functionality? ...

Can a JavaScript function spontaneously run without being called upon?

<a onclick="determineCountry(data)" class="installbtn">Install</a> My goal is to have the user redirected to one of three sites based on their location when they click the button above. However, there seems to be an issue with the script below ...

The content contained within the .each loop within the click event is only executed a single time

While working on coding a menu opening animation, I encountered an issue today. Upon clicking the menu button, the menu opens and the elements inside receive an added class (resulting in a fade-in effect). Clicking the menu button again should close the ...

Creating space between flex items in Slick Carousel with Vue

This is my current Slick Carousel. There are 4 items in a row, and I am looking to insert some margin between each item while maintaining the existing aspect-ratio: 1.3/1; I'm struggling with overriding the classes from vue-slick-carousel. Does any ...

Is it possible to adjust CSS values in a relative manner?

#bar{font-size:14px;} The font size of #bar is set to 14px. #foobar{font-size:$-2px} // Fictional code The font size of #foobar is now 12px. (calculated as 14px - 2px) Is there a way to dynamically alter the value of a selector like this? ...

I am having difficulty combining 2 HTML pages without the output becoming distorted

Having encountered issues when combining two HTML pages, one for a navbar and the other for a contact form in my Django project. The resultant single page appears distorted as shown in the image below. I attempted to use sections but it does not seem to re ...

I'm curious to know if it's possible to incorporate addon code into a jQuery content script file within the Firefox addon SDK. If

Can anyone help me with my addon-sdk plugin development issue? I am currently working on a project that involves a togglebutton and panel. The panel loads an HTML file named "myform.html" where users can fill out a form and submit it. Upon submission, an a ...

Tips on aligning a checkbox and title on the same line

To fix the issue in Google Chrome where the checkbox and title are not on the same line, you can follow these steps after pressing F12 and enabling the toggle device toolbar. If you want to maintain the Bootstrap stylesheet, here's how you can make su ...

Unable to retrieve field values from Firestore if they are numeric rather than strings

I need to display this information in a list format: li.setAttribute('data-id', updatesArgument.id);//'id' here unique id Example 1 name.textContent = updatesArgument.data().count;// Works if String Example 2 let i=1; nam ...

The issue arises with owl carousel elements not functioning properly when added dynamically through ajax calls and jquery

The owl carousel items seem to be facing an issue when added dynamically using AJAX and jQuery. Here is the AJAX code snippet, any assistance would be highly appreciated. Thank you in advance! $.ajax({ type: "POST", url: "urllinks", data: &a ...

Enhance your navbar with interactive image effects on hover

Looking to create a CSS menu that changes images and background when hovered over. Below is the code for my menu: HTML <ul> <li class="active1"> <a href="profile.html" class="act">My Profile</a></li> <li><a ...

Tips on setting a background image to a div element

I'm facing an issue with a div setup like this: https://i.sstatic.net/4nuyO.png My goal is to remove a specific section of the circle shape displayed below: https://i.sstatic.net/09IWX.png The desired outcome is to achieve a final shape similar to ...

What causes the red square to descend when text is added?

Curious fact: when the text "WHY?" is added to the first div, the red square drops down and aligns below the blue square. However, if "WHY?" is absent, the two squares remain side by side. Why does this happen? A common question for beginners learning abou ...

Is it possible to have two different actions with two submit buttons in PHP?

Here is my form tag: sample name:register.php page <form id="formElem" name="formElem" action="form10.php" method="post"> <input id="pd" name="pd" type="text" AUTOCOMPLETE=OFF /> <input id="pd1" name="fname" type="text" AUTOCOMPLETE=OFF /& ...