You need to add a JSLink to the fields themselves (this means you need to either update the existing fields (by code or by PowerShell, harder in Office 365) or create your own field definition)
In that .js file you need to specify a number of methods that will override the standard functions, including View, DisplayForm, EditForm, NewForm.
Note that this will only change the style of every individual field!
In MSDN you can see an extensive example of how to customize every part of, in this case, a geolocation field.
I also found this blog post that is very extensive and with lot's of great code examples.
Here is the basic structure of an .js for rendering a field (from MSDN above):
function _registerCustomGeolocationFieldTemplate() {
var geolocationFieldContext = {};
geolocationFieldContext.Templates = {};
geolocationFieldContext.Templates.Fields = {
'CustomGeolocationField': {
'View': CustomGeolocationFieldTemplate.RenderGeolocationField,
'DisplayForm': CustomGeolocationFieldTemplate.SPFieldGeolocation_Display,
'EditForm': CustomGeolocationFieldTemplate.SPFieldGeolocation_Edit,
'NewForm': CustomGeolocationFieldTemplate.SPFieldGeolocation_Edit
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(geolocationFieldContext);
}
And the basic structure for a Callback method for your edit forms:
/// Function called to render the NewForm & EditForm view of the field
function editFunc(renderCtx) {
var fieldHtml = '<select ';
fieldHtml += 'id="myNiftySelect" onchange="moveValue(\'' + this.get_fieldId() + '\')">';
fieldHtml += getSelectOptions(this.get_fieldValue());
fieldHtml += '"</select>';
fieldHtml += getStandardInputHtml(this, "hidden");
return fieldHtml;
}
from here