Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why doesn't border-radius work on the image?

The image

I have tried everything and the border radius doesn't work on this image. It just doesn't react to it. I have tried both % and px. Image reacts to any other CSS value that you can see or the properties that I am passing in the img tag in the component. Everything, except for border-radius. I am out of ideas.

Here is the component:

import React from "react";
import {
  UserContainer,
  User,
  UserProfilePicture,
  UserProfileName,
  UserChevronIcon,
} from "./User.style";
import Logo from "../../../images/ProfileFace.jpg";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faChevronDown } from "@fortawesome/free-solid-svg-icons";

function UserProfile() {
  return (
    <UserContainer>
      <User>
        <UserProfilePicture>
          <img src={Logo} height="50" width="50" border-radius="50px" />      -----> both px and % don't work
        </UserProfilePicture>
        <UserProfileName>Olivia Wilde</UserProfileName>
        <UserChevronIcon>
          <FontAwesomeIcon icon={faChevronDown} color="#7a7e7e" />
        </UserChevronIcon>
      </User>
    </UserContainer>
  );
}

export default UserProfile;

Here is the styled component:

import styled from "styled-components";

export const UserContainer = styled.div`
  height: 90%;
  width: 30%;
  margin: 0px;
  padding: 0px;
  background-color: inherit;
  color: white;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
`;

export const User = styled.div`
  height: 70%;
  width: 100%;
  background-color: inherit;
  display: flex;
  text-align: end;
  justify-content: space-around;
`;

export const UserProfilePicture = styled.image`
  height: 50%;
  width: 50%;
  border-radius: 100px;      -----> both px and % don't work
  display: flex;
  justify-content: center;
  align-items: center;
`;

export const UserProfileName = styled.div`
  height: 40%;
  width: 40%;
  color: #7a7e7e;
  font-size: 17px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: flex-start;
`;

export const UserChevronIcon = styled.div`
  height: 50%;
  width: 10%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
`;
like image 512
WorstProgrammerEver Avatar asked Jul 30 '21 05:07

WorstProgrammerEver


2 Answers

I assume you'd like to make that image round. Adding a 100px border-radius to a 50px image won't work. Use percentage instead. For example, to make a square image look round use the following style:

border-radius: 50%;

If it doesn't work, likely another style is overwriting it, so try with the important tag:

border-radius: 50% !important;

If that also fails (could be overwritten by another !important tag somewhere in your css) try to style it inline:

<img src={Logo} height="50" width="50" style="border-radius: 50%" />
like image 192
Ivan Avatar answered Oct 16 '22 15:10

Ivan


You can style it the following way:

   <img src={Logo} height="50" width="50" style={{borderRadius: '50%'}}/>
like image 42
Winter Avatar answered Oct 16 '22 15:10

Winter