I tested this with many browsers (Firefox, Chrome, Vivaldi, Edge) - none shows the label inside the input fields, always on the border of the field.
But also a label inside the input field is not really useful. A label should always indicate what an element is used for - like this:
Username: […………………..]
Password: […………………..]
Or this for smaller viewports:
Username:
[…………………..]
Password:
[…………………..]
That’s also the reason why the HTML element for this - <label> - places the content outside the element for which the label is intended for by default. Moving the label inside the input field was a bad idea in the first place and moving it outside and using smaller text just in case you focus the input field or enter something is even worse in my opinion. The default behaviour of <label> is fine as it is and in my opinion there is no reason to change this.
In addition one may also add a placholder attribute to explain what content is expected (like “text”, “number”, “amount” or similar). However MDN recommends against using placeholders since this is not accessible (also see <input>: The HTML Input element - HTML | MDN ). A better approach would be to use the appropriate input type if you need date and not text etc..
For example what I talk about see https://codepen.io/awelzel/pen/WbrwwMz